我有2个具有键值对的对象,它们应该始终相同(匹配),否则我想将对象#1中的键值修改为“某些值-不可用”
这是我的两个对象:
对象#1
[
{
"name": "John",
"age": "12",
"id": 1
},
{
"name": "tina",
"age": "19",
"id": 2
}]
对象2(名称检查器)
[
{
"value": "tina"
},
{
"value": "Trevor"
},
{
"value": "Donald"
},
{
"value": "Elon"
},
{
"value": "Pamela"
},
{
"value": "Chris"
},
{
"value": "Jackson"
}
]
我想找出是否在对象#2中找到了对象#1中的name,如果找不到,则添加“-不可用”
e.i
[
{
"name": "John - not available",
"age": "12",
"id": 1
},
{
"name": "tina",
"age": "19",
"id": 2
}
]
重要提示:我正在使用ES5 ---不是ES6
ES 6,将压缩很多代码,但是如您所要求的ES5,这是ES5解决方案
var arrObj = [
{
"name": "John",
"age": "12",
"id": 1
},
{
"name": "tina",
"age": "19",
"id": 2
}
];
var name_list = [
{
"value": "tina"
},
{
"value": "Trevor"
},
{
"value": "Donald"
},
{
"value": "Elon"
},
{
"value": "Pamela"
},
{
"value": "Chris"
},
{
"value": "Jackson"
}
];
var updated_arr = [];
for (var i = 0; i < arrObj.length; i++) {
var match_found = false;
var temp_obj = arrObj[i];
for (var j = 0; j < name_list.length; j++) {
if (name_list[j]['value'] === temp_obj['name']) {
match_found = true;
break;
}
}
if (!match_found) {
temp_obj['name'] = temp_obj['name'] + ' - not available';
}
updated_arr.push(temp_obj);
}
console.log(updated_arr);