我正在尝试从新请求中删除已经被请求的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]
我能够通过使用字符串而不是数字来解决此问题。
答案 0 :(得分:3)
如果您在js控制台中输入10032789435529381
,它将返回10032789435529380
。您已经超出了javascript整数的容量,导致该整数被视为不太精确的浮点数。
这是通常建议使用字符串代替ID而不是数字的原因的一部分。