我正在尝试从一个数组获取存在计数,该数组在所选数组中具有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
我的错在哪里?
我该如何解决?
谢谢!
答案 0 :(得分: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 ,并且没有项目添加到 existCount
答案 1 :(得分:0)
如果您使用三等式===
,请确保比较的两个值都属于同一类型。我怀疑script.script_id
是一个字符串。
尝试将===
更改为==