JS之向对象数组添加属性并赋值

2020-08-31  本文已影响0人  兰觅
两个对象数组合并属性与值
var data1= [
 {name:"张三",age:"10"}, 
{name:"李思",age:"15"}, 
{artist:"周杰",age:"20"} 
];

var data2= [
{name:"小花",age:"1"}, 
{name:"小草",age:"2"}, 
]

for (let i = 0; i < arr.length; i++) {
    songs.push(arr[i])
}

console.log(songs);

输出结果为:

 Array [Object { name: "张三", age: "10" }, 
Object { name: "李思", age: "15" }, 
Object { artist: "周杰", age: "20" }, 
Object { name: "小花", age: "1" }, 
Object { name: "小草", age: "2"}];
两个对象数组合去重并合并
let jsonArr = [
        {
            "ID": "",
            "NO": "1",
            "NAME": "测试对象1"
        },
        {
            "ID": "",
            "NO": "2",
            "NAME": "测试对象2"
        },
        {
            "ID": "",
            "NO": "3",
            "NAME": "测试对象3"
        },
        {
            "ID": "",
            "NO": "4",
            "NAME": "测试对象4"
        },
        {
            "ID": "",
            "NO": "5",
            "NAME": "测试对象5"
        }
        ];

        let jsonArr2 = [ {
            "ID": "",
            "NO": "3",
            "NAME": "测试对象3"
        },
        {
            "ID": "",
            "NO": "4",
            "NAME": "测试对象4"
        },
        {
            "ID": "",
            "NO": "6",
            "NAME": "测试对象6"
        },
        {
            "ID": "",
            "NO": "7",
            "NAME": "测试对象7"
        }
        ];

        let length1 = jsonArr.length;
        let length2 = jsonArr2.length;
        for (let i = 0; i < length1; i++) {
            for (let j = 0; j < length2; j++) 
            {
                //判断添加的数组是否为空了
                if (jsonArr.length > 0) {
                    if (jsonArr[i]["NAME"] === jsonArr2[j]["NAME"]) {
                        jsonArr.splice(i, 1); //利用splice函数删除元素,从第i个位置,截取长度为1的元素
                        length1--; 
                     //   console.log(jsonArr2[j]);//重复元素
                    }
                }
            }

        } 
        
        for (let n = 0; n < jsonArr2.length; n++) {
            jsonArr.push(jsonArr2[n]);
        }

    console.log(JSON.stringify(jsonArr)); 

输出结果为:

"[{"ID":"","NO":"1","NAME":"测试对象1"},
{"ID":"","NO":"2","NAME":"测试对象2"},
{"ID":"","NO":"5","NAME":"测试对象5"},
{"ID":"","NO":"3","NAME":"测试对象3"},
{"ID":"","NO":"4","NAME":"测试对象4"},
{"ID":"","NO":"6","NAME":"测试对象6"},
{"ID":"","NO":"7","NAME":"测试对象7"}]"

[来源]https://www.cnblogs.com/lilelile/p/10007370.html

向一个对象数组插入另一个对象数组中的属性与值
var a = [{name:'dede'},{name:'jeen'}];
var b = [{age:'18'},{age:'19'},{age:'20'}];
var c = 'age';
merge(a,b,c);
console.log(a)


function merge(a,b,attrName){
let attr = attrName
b.map((value,index)=>{
//数组b 长度大于a的长度时,需要判断
if(a[index] !== undefined){
a[index][attr] = value[attr]
} else{
return
}
})
return a
}

输出结果:

Array [Object { name: "dede", age: "18" }, Object { name: "jeen", age: "19" }]
向对象中插入对象
var obj1={'a':1};
var obj2={'b':2,'c':3};
for(var key in obj2){
     if(obj2.hasOwnProperty(key)===true){//此处hasOwnProperty是判断自有属性,用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
           obj1[key]=obj2[key];
} 
}
 
console.log(obj1);//{'a':1,'b':2,'c':3};

添加单个属性
let resultList = [{"name":"a1"},{"name":"b1"}]
resultList.forEach(tem => {
    tem.age = 1;
})

循环向数组resultlist中添加age属性

let resultList = [{"name":"a1","shapes":[{"age":12,"sex":"female"}]},{"name":"b1","shapes":[{"age":10,"sex":"male"}]}]
resultList.forEach(item => {
    item.shapes.forEach(tem => {
        tem.class = "1";
    })
})
上一篇 下一篇

猜你喜欢

热点阅读