从数组数组中删除对象

时间:2018-02-07 21:57:18

标签: javascript arrays

我只想从此数据结构中删除specTplItemDropped()函数参数item

this.areas:
      items:
          item:

代码:

public specTplItemDropped(index, item, external, type, area1) {
    let newArray = this.areas.map(areaV => {
        let a = areaV.items.filter(itemV => {
            let b = itemV.id !== item.id;
            return b;
        });
        return a;
    });

    console.log(newArray);

新数组应与旧数组相同,减去一个项目。但它是非常不同的:

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

输入是一个对象数组,但您要从.map()调用返回一个数组而不是一个对象。您需要使用新的项目数组返回原始对象的副本。

function specTplItemDropped(index, item, external, type, area1) {
    let newArray = this.areas.map(areaV => {
        let a = areaV.items.filter(itemV => {
            let b = itemV.id !== item.id;
            return b;
        });
        return Object.assign({items: a, itemCount: a.length}, areaV);
    });

    console.log(newArray);
}