首页 > 解决方案 > Javascript - 数组 - for-loop 到 forEach

问题描述

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与 a 几乎相同for-loop吗?

这怎么能用 a 重写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]));

标签: javascriptif-statementforeach

解决方案


从 for 循环转换为 forEach 循环

为了

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

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

arr.forEach( [code] )

有关其他语法帮助,请参见此处


推荐阅读