Heim > Fragen und Antworten > Hauptteil
var obj1 = [
{index: 1,name: "权限1"},
{index: 2,name: "权限2"},
{index: 3,name: "权限3"},
];
var obj2 = [
{category: "权限1",index: 1,tag: "权限1-1"},
{category: "权限2",index: 2,tag: "权限2-2"},
{category: "权限3",index: 3,tag: "权限3-3"},
{category: "权限1",index: 4,tag: "权限1-1"},
{category: "权限2",index: 5,tag: "权限2-2"},
{category: "权限3",index: 6,tag: "权限2-2"},
];
var newObj = [
{index: 1,name: "权限1",arr:[{tag:"权限1-1"},{tag:"权限1-1"}]},
{index: 2,name: "权限2",arr:[{tag:"权限2-2"},{tag:"权限2-2"}]},
{index: 3,name: "权限3",arr:[{tag:"权限3-3"},{tag:"权限3-3"}]},
];
有obj1和obj2两个数组,判断obj1的“name”和obj2的"category"值是否相同,如果相同就把obj2的“tag”属性放入obj1中形成数组。(说的比较饶,直接看结果的样子就好了)
最后能形成newobj的样子。(伸手党骂我吧,给个结果就行!)
PHP中文网2017-04-10 17:02:36
var newObj2 = [];
for(var i=0 ; i < obj1.length; i++) {
var nameO1 = obj1[i].name;
var arr = [];
for(var j=0; j < obj2.length ; j++) {
var nameO2 = obj2[j].category;
if(nameO1 === nameO2) {
arr.push(obj2[j].tag);
}
}
// clone obj
var clonedObj = JSON.parse(JSON.stringify(obj1[i]))
clonedObj.arr = arr;
newObj2.push(clonedObj);
}
console.log(newObj2)
ringa_lee2017-04-10 17:02:36
你的newObj错了。index3的arr里面应该是3-3和2-2
var obj1 = [
{index: 1,name: "权限1"},
{index: 2,name: "权限2"},
{index: 3,name: "权限3"},
];
var obj2 = [
{category: "权限1",index: 1,tag: "权限1-1"},
{category: "权限2",index: 2,tag: "权限2-2"},
{category: "权限3",index: 3,tag: "权限3-3"},
{category: "权限1",index: 4,tag: "权限1-1"},
{category: "权限2",index: 5,tag: "权限2-2"},
{category: "权限3",index: 6,tag: "权限2-2"},
];
var t = {};
obj1.forEach(function(v) {
t[v.name] = [];
});
obj2.forEach(function(v) {
if (v.category in t) {
t[v.category].push(v.tag);
}
});
obj1.forEach(function(v) {
v["arr"] = t[v.name]
});