Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.6k views
in Technique[技术] by (71.8m points)

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

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的呢一项。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
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);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...