html 如何正确地从一个数组中删除另一个数组的元素?

68de4m5k  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(187)

我有一个从DOM读入的元素数组,如下所示:

  1. let delete00To04Am = document.getElementById("time000am400amEveryDay").value;
  2. console.log('delete00To04Am');
  3. //this yields: 1669410000000,1669496400000

..

  1. delete00To04Am = delete00To04Am.split(',');
  2. console.log('delete00To04Am: ' ,delete00To04Am);
  3. //this yields: delete00To04Am: ['1669410000000', '1669496400000']

..

  1. timesForAdvert = timesForAdvert.filter((item)=> item !== delete00To04Am )
  2. console.log("timesForAdvert: " ,timesForAdvert);
  3. //this yields: timesForAdvert: [1669482000000, 1669568400000, 1669410000000, 1669496400000]

正如您所看到的,没有从阵列中删除任何内容。如何使timesForAdvert = timesForAdvert.filter((item)=> item !== delete00To04Am )工作?

rbpvctlc

rbpvctlc1#

使用Array#includes

  1. const
  2. delete00To04Am = ['1669410000000', '1669496400000'],
  3. timesForAdvert = [1669482000000, 1669568400000, 1669410000000, 1669496400000];
  4. const res = timesForAdvert.filter(item =>
  5. !delete00To04Am.includes(item.toString())
  6. );
  7. console.log(res);

建议对您的方法进行的改进:

  1. const
  2. delete00To04Am = '1669410000000,1669496400000',
  3. timesForAdvert = [1669482000000, 1669568400000, 1669410000000, 1669496400000];
  4. const exclude = delete00To04Am.split(',').map(Number);
  5. const res = timesForAdvert.filter(item => !exclude.includes(item));
  6. console.log(res);
展开查看全部

相关问题