循环中的push方法导致数组内部的数组

时间:2017-05-08 10:22:07

标签: javascript arrays loops

我有两个数组,一个充满链接,另一个域应从第一个数组中删除。

array1 = [ http://www.linkone.com, https://www.linktwo.com, ... ]
array2 = [ 'linkone' ]

第二个数组没有网址格式,我通过执行以下操作来完成此操作:

for (let a2 of array2) {
  clearedUrls.push(_.pull(array1, `https?:\/\/www.${a2}.*`))
}

它有效,但clearedUrls的输出包含数组内的数组:

[
  'https://www.foo.com',
  'https://www.foo.com',
  'https://www.foo.com',
  'https://www.foo.com',
  [
    'https://www.foo.com',
    'https://www.foo.com',
    'https://www.foo.com',
  ],
  [ ... ]
]

我知道,因为每次迭代都会push。我想知道更好的方法来循环array2,从array中删除网址,并返回仅包含内部链接的数组,不再包含数组。

1 个答案:

答案 0 :(得分:3)

您应该使用concat代替push

clearedUrls = clearedUrls.concat(_.pull(array1, `https?:\/\/www.${a2}.*`))