-2

我试图从一个数组中获取existCount,该数组在选定的数组中有id。

但是出了点问题,我有一个项目id = 5493但是existCount.length 0

我的 JS 代码:

var existCount = $scope.selectedScript.filter(function (item) {
    return item.id === script.script_id;
});
console.log('existCount.length ', existCount.length);
console.log('$scope.selectedScript ', $scope.selectedScript);
console.log('script.script_id ', script.script_id);

Chrome 控制台视图:

https://i.stack.imgur.com/4UVWw.png

// 对不起,我忘记了第一行输出,但这一行在顶部,$scope.selectedScript它是existCount.length = 0

我的错在哪里?

我该如何解决?

谢谢!

4

2 回答 2

1

更改return item.id === script.script_id;return item.id == script.script_id;

在您的情况下:item.id是一个数字,script.script_id是一个字符串。您可以按颜色在 chrome 调试中看到它,黑色表示字符串,蓝色表示数字。

=== 是在 JS 中比较难的方法。

您可以在https://stackoverflow.com/a/359509/8572205看到

所以 === 返回false并且没有项目添加到existsCount

于 2018-11-20T00:10:00.000 回答
0

如果您使用 Triple-equals ===,请确保比较的两个值属于同一类型。我怀疑script.script_id是一个字符串。

尝试更改=====

于 2018-11-20T00:09:33.603 回答