【问题标题】:Javascript - Arrays - for-loop to forEachJavascript - 数组 - for-loop 到 forEach
【发布时间】:2019-10-25 07:42:33
【问题描述】:

Given an array of integers where every value appears twice except one, find the single, non-repeating value.

Follow up: do so with O(1) space.

1) 这是不正确的,我们的想法是迭代两次并比较第一次是否有任何值不等于第二次。如果不是,则将不相等的值推入一个新数组并返回。

2) forEach 与 for-loop 几乎相同吗?

这怎么能用forEach 重写?

这并没有给我想要的输出,对于这个例子, 应该只返回4

代码

 const nonRepeat = arr => {
 
     let newArray = [];

     for (let i = 0; i < arr.length; i++) {
 
       for (let j = 0; j < arr.length; j++) {

         if (arr[i] !== arr[j]) {

           newArray.push(arr[i])

         }
        }
       }
     return newArray
    }

console.log(nonRepeat([2, 5, 3, 2, 1, 3, 4, 5, 1]));

【问题讨论】:

  • 您的代码与您所说的任务无关。

标签: javascript if-statement foreach


【解决方案1】:

从 for 循环转换为 forEach 循环

为

for (let i = 0; i < arr.length; i++) { [code] }

forEach 无需创建迭代变量(例如 i)并始终检查数组中的每个元素

arr.forEach( [code] )

See Here for Additional Syntax Help

【讨论】:

  • 为什么有这么多反对票?感谢。如果我写了一个forEach 然后想使用一个if statement 比较arr[i] or i,我将如何在forEach 语句中做到这一点?
  • @mph85 你应该在我分享的链接上达到峰值。索引可以作为函数的第二个参数访问。 arr.forEach(function(value, index, arr) { })
  • @mph85 不知道为什么会投反对票,因为他们没有评论原因,但您应该编辑您的问题并将其重点放在将 for 循环转换为 forEach 循环上。
  • 嘿伙计,感谢您的回复和一切,您认为您可以删除您的帖子,所以我可以删除这个并发布修订版?不会让我删除因为你贡献了
  • @mph85 您可以编辑问题以更新它,而不是创建新帖子。另外,如果我已经回答了您的问题,您可以将我的回答标记为解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多