【问题标题】:filtering an array of objects before using push function in Typescript在 Typescript 中使用 push 函数之前过滤对象数组
【发布时间】:2018-07-05 14:26:40
【问题描述】:

这是我想要实现的简化版本。

我有一个对象数组,我正在映射到一个新数组。现在,可能会将数组形式的新数据负载添加到先前创建的对象数组中。但在我将新对象添加到现有数组之前,我需要检查是否已经存在相同的数据。我尝试使用下面的过滤器,但似乎不起作用。有什么想法吗?

let arr:IOption[] = [
{key:1,text:"key1"},
{key:2,text:"key2"},
{key:3,text:"key3"},
];

let arr2:IOption[] = [
{key:1,text:"key1"},
{key:2,text:"key2"},
{key:3,text:"key3"},
{key:4,text:"key4"},
];

let newArray:IOption[] = [];
arr.map((item)=>{
newArray.push(item);
});


arr2.map((newItem)=>{
newArray = newArray.filter(s => s.key !== newItem.key);
//newArray = newArray.filter((s) => {return s.key !== 1});

newArray.push(newItem);
});


let output = "";
newArray.forEach((item)=>{
output+=item.key + " "; 
})
document.querySelector("#app").innerHTML = output;

【问题讨论】:

    标签: arrays filter push arrayobject


    【解决方案1】:

    这个post 可能会对你有所帮助。

    摘自上述帖子,但稍作修改:list[i].key === obj.key

    function containsObject(obj, list) {
        var i;
        for (i = 0; i < list.length; i++) {
            if (list[i].key === obj.key) {
                return true;
            }
        }
    
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 2018-01-27
      • 2020-02-04
      • 2020-06-24
      • 2017-09-06
      • 1970-01-01
      相关资源
      最近更新 更多