数组过滤器linq不返回预期结果

时间:2018-03-23 15:52:21

标签: javascript linq.js

我试图从数组中获取 existCount 数组在所选数组中 id

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

我的JS代码:

enter image description here

Chrome控制台视图:

enter image description here

我的错?

我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:1)

问题是item.idscript.script_id的类型,您需要比较数字和字符串。

item.id  script_id
  |         |
  v         v
5493 === "5493" -> false



console.log(5493 === "5493");




另一种方法是转换为script_id

的编号

此方法使用+将该字符串转换为数字并进行正确的比较



console.log(5493 === +"5493");




这是一个例子来说明。



var array = [{id: 4110, name: "Ele"}, {id: 4091, name: "SO"}, {id: 5493, name: "Target"}];

var script_id = "5493";
var result = array.filter(e => e.id === +script_id);

console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }