【问题标题】:Comparing the contents of two JS arrays比较两个JS数组的内容
【发布时间】:2019-10-27 11:57:55
【问题描述】:

尝试使用以下方法与 JavaScript 中的数组进行比较。

 return stack1.forEach((v, i) => v === stack2[i]);

我想让它工作,但如果数组相同,它会返回 undefined 而不是 true 或 false。

这里是完整的代码:

const backspace_compare = function(str1, str2) {
  let stack1 = [];
  let stack2 = [];
  for (let i = 0; i < str1.length; i++) {
    str1[i] === "#" ? stack1.pop() : stack1.push(str1[i]);
  }
  for (let i = 0; i < str1.length; i++) {
    str2[i] === "#" ? stack2.pop() : stack2.push(str2[i]);
  }
  return stack1.forEach((v, i) => v === stack2[i]);
};

非常感谢任何帮助解决我使用类似方法比较数组的方式。

【问题讨论】:

  • forEach 返回undefined,也许你想改用.every()
  • 这正是我所需要的,完美运行。

标签: javascript arrays compare


【解决方案1】:

以下是我用来比较 JS 中的两个数组的一些方法。我通常比较喜欢的方法是JSON.stringify

但是,我觉得你的方法是最快的,只是你必须使用.every()代替forEach()

let stack1 = [1, 2, 3, 4];
let stack2 = [1, 2, 3, 4];

console.log('every compare:', stack1.every((v, i) => v === stack2[i]));
// or
console.log('toString compare:', stack1.toString() === stack2.toString());
// or
console.log('JSON compare:', JSON.stringify(stack1) === JSON.stringify(stack2));
// or
console.log('short compare:', stack1+'' === stack2+'');

【讨论】:

  • PS:如果有人想送我一顶帽子,那就给我的答案投票吧,这很有用:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
相关资源
最近更新 更多