首页 > 解决方案 > 如何将相同的元素推入一个空数组

问题描述

嗨,我想知道如何让 bob 和 tina 相同的追随者进入一个空数组相互追随者。我得到输出 两个追随者都未定义。好像名字没有通过。请指教。

    let bobsFollowers = ['grey', 'mary', 'james', 'ash'];
    let tinasFollowers = ['grey', 'mary', 'rex'];
    let mutualFollowers = [];
    
    for(let i = 0; i<bobsFollowers.length; i++){
      for(let k = 0; k<tinasFollowers.length; k++){
        if (bobsFollowers[i] === tinasFollowers[k]) {
          tinasFollowers.push(mutualFollowers);
          console.log('Both followers have ' + mutualFollowers[k]);
        }
      }
    }

标签: javascriptarrays

解决方案


你需要推到mutualFollowers. 并且为了使循环更有表现力,您可以将内部循环保留在 found 上。

let bobsFollowers = ['grey', 'mary', 'james', 'ash'];
let tinasFollowers = ['grey', 'mary', 'rex'];
let mutualFollowers = [];

for (let i = 0; i < bobsFollowers.length; i++) {
  for (let k = 0; k < tinasFollowers.length; k++) {
    if (bobsFollowers[i] === tinasFollowers[k]) {
      mutualFollowers.push(bobsFollowers[i]);
      break;
    }
  }
}

console.log(mutualFollowers);

要仅获取常见项目,您可以使用 aSet并使用Set#has.

const
    bobsFollowers = ['grey', 'mary', 'james', 'ash'],
    tinasFollowers = ['grey', 'mary', 'rex'],
    common = bobsFollowers.filter(
        Set.prototype.has,
        new Set(tinasFollowers)
    );

console.log(common);


推荐阅读