Node JS array.includes不能按预期工作

时间:2018-03-08 14:48:47

标签: javascript arrays node.js

我有以下代码,它应该从未包含在另一个常量数组中的所有元素中过滤一个动态数组(最多300,000个元素):

    NSMutableDictionary *object1 = [[NSMutableDictionary alloc] init];
    [object1 setValue: @"One" forKey: @"theKeyOne"];
    [object1 setValue: @"Two" forKey: @"theKeyTwo"];
    [object1 setValue: @"Three" forKey: @"theKeyThree"];
    [object1 setValue: @"Four" forKey: @"theKeyFour"];

    // Getting the value using the key
    NSString *valueOfKey = [object1 valueForKey: @"theKeyTwo"];

    // Making the predicate using the value of key string
    NSPredicate *pred2 = [NSPredicate predicateWithFormat: @"theKeyTwo MATCHES[c] %@", valueOfKey];

然而,并非所有不必要的记录都被过滤掉了,其中有很多很多,其id在材料数组中找不到。

我的错误是什么,错误在哪里?

1 个答案:

答案 0 :(得分:0)

function getIntervalls(max, nInt) {
  const c = Math.floor(max / nInt);
  const r = [];
  for (var i = 0; i <= max; i += c) {
    const a = i == 0 ? i : i += 1;
    const b = i + c > max ? max : i + c;
    if (a < max) r.push([a, b])
  }
  return r;
}

console.log(JSON.stringify(getIntervalls(3, 2)));
console.log(JSON.stringify(getIntervalls(6, 2)));
console.log(JSON.stringify(getIntervalls(8, 3)));
console.log(JSON.stringify(getIntervalls(9, 3)));
console.log(JSON.stringify(getIntervalls(7, 2)));
console.log(JSON.stringify(getIntervalls(7, 3)));

这就是你如何迭代对象中的键。而是迭代数组中的条目:

for (let scheme in schemes) 

此外,您应该考虑使用Set for lookup更快。 for (let scheme of schemes) map可能很有用:

filter