js 数组相关问题

有一个数组(如下)长度不固定

let arr = [
    {name: 1,img: 'http://img1.png'},
    {name: 2,img: 'http://img2.png'},
    {name: 3,img: 'http://img3.png'}, 
    {name: 4,img: 'http://img4.png'},
    {name: 5,img: 'http://img5.png'},
    {name: 2,img: 'http://img6.png'},
    ......
]

需要过滤name值相等的相同项,然后把(需要过滤的这项的img替换到)不需要过滤且name值相等的img上
如:

let arr = [
    {name: 1,img: 'http://img1.png'},
    {name: 2,img: 'http://img6.png'},
    {name: 3,img: 'http://img3.png'}, 
    {name: 4,img: 'http://img4.png'},
    {name: 5,img: 'http://img5.png'},
    // {name: 2,img: 'http://img6.png'}, 这一项过滤删除掉。这项的img值需要赋值给(不需要过滤且name值相等的img上)
    ......
]
阅读 1.8k
2 个回答
var res= [];
var obj = {};
for (var i = 0; i < this.arr.length; i++) {
    if (!obj[this.arr[i].name]) {
        res.push(this.arr[i]);
        obj[this.arr[i].name] = true;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题