数组中的对象是否包含某个键,如果包含则把这个键值对插入其他对象?

list = [ { a: '1', b: '2', c: '3' }, { a: '3', b: '5', c: '8', d: '4' },{ a: '10', b: '20', c: '30' } ];
就是判断有没有d,如果哪一项没有d,则加上d且d的值等于有d的呢一项。

阅读 2k
1 个回答
list = [ { a: '1', b: '2', c: '3' }, { a: '3', b: '5', c: '8', d: '4' },{ a: '10', b: '20', c: '30' } ];

var matchedIndex = list.findIndex((item)=>{
    if(item.hasOwnProperty('d')){
        return true;
    }
    
    return false;
});
var resultList = Array.prototype.slice.call(list,0);
if(matchedIndex!==-1){
    var hasDItem = resultList[matchedIndex];
    resultList = list.reduce((resultList,item,index)=>{
        if(index === matchedIndex){
            resultList.push(item);
        }else{
            resultList.push(Object.assign({},item,{
                d:hasDItem.d,
            }));
        }
    },[]);
}

console.log('resultList:',resultList);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题