React JS数组过滤器返回空数组,尽管过滤器返回true

时间:2020-04-09 10:53:43

标签: javascript arrays reactjs

let destUpdate = this.state.destinations.filter((dest) => {
    return !toRemove.includes(dest);
})

这是我的代码。通常,它可以按我的意愿工作,但是我有一个具体的例子,它做得很奇怪。

在示例中,this.state.destinations包含仅包含一个元素,而toRemove是一个空数组。

由于toRemove为空,所以过滤器将返回true,并且应将dest添加到新数组,但是从过滤器(destUpdate)返回的数组为空。 怎么会这样? 另外,如果我这样编写代码:

let destUpdate = [];
this.state.destinations.forEach((dest) => {
    if (!toRemove.includes(dest))
        destUpdate.push(dest);
});

destUpdate仍然为空(在toRemove为空而this.state.destinations包含的示例中仅包含一个元素)

更新:

toRemove: []

this.state.destinations: [{"lat":51.4862408,"lng":-0.1601986,"name":"National Army Museum","place_id":"ChIJma2VQBEFdkgRfxsd5E7cC3c","open":null,"timeSpent":1,"types":["tourist_attraction","museum","point_of_interest","establishment"],"assignedTime":"14:00 Friday","date":"10/4/2020"}]

此外,此代码还会打印一个非空数组(根据需要):

 console.log(this.state.destinations.filter((dest) => {
            return !toRemove.includes(dest);
        }))

0 个答案:

没有答案