我试图从已请求的新请求中删除 id。在下面的代码中,我期望删除 ...56 id,只保留 ...81 id。 56 被删除,但令我惊讶的是 81 已减少到 80。
const oldIds = [
10032789416531456
];
const newIds = [
10032789435529381,
10032789416531456
];
const result = newIds.filter(newId => !oldIds.some(oldId => oldId === newId));
console.log(result)
//Expected result is: [10032789435529381], instead I get [10032789435529380]
我能够通过使用字符串代替数字来解决这个问题。
最佳答案
如果在js控制台中输入10032789435529381
,它会返回10032789435529380
。您超出了 JavaScript 整数的容量,导致它被视为不太精确的 float 。
这就是为什么通常建议使用字符串作为 ID 而不是数字的部分原因。
关于javascript - 按另一个数组中的元素过滤数组时出现奇怪的数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53052485/