【问题标题】:Why am i receiving an empty array?为什么我收到一个空数组?
【发布时间】:2021-10-12 18:26:07
【问题描述】:

我试图将作为函数参数之一传递的数组中的各个数字与另一个参数(单个数字)进行比较。 我想将不等效的数字推入一个新的空数组,然后返回该数组,但由于某种原因,我只接收和空数组。似乎数字没有被推动。非常感谢任何帮助。


function removeChar(arr, num) {
  let newArray = [];
  for (number of arr) {
   
    if (!number === num) {
      newArray.push(number);
       console.log(newArray)
    }
  }
  console.log(newArray);
}


removeChar([2,5,4,3], 5)

【问题讨论】:

    标签: javascript arrays loops if-statement findbugs


    【解决方案1】:
    if (!number === num) {
    

    首先否定number(到布尔值),然后将其与num(始终为false,因为num 是一个数字,而不是布尔值)进行比较。就像

    if ((!number) === num) {
    

    你需要

    if (number !== num) {
    

    或者,甚至更好:

    const removeChar = (arr, num) => arr.filter(val => val !== num);
    console.log(removeChar([2, 5, 4, 3], 5));

    【讨论】:

      【解决方案2】:

      我建议改用 array.filter 方法,它返回你设置的条件中的任何内容。

      【讨论】:

        猜你喜欢
        • 2014-01-14
        • 2022-09-23
        • 2010-09-13
        • 2014-01-22
        • 1970-01-01
        • 1970-01-01
        • 2017-07-25
        • 2022-01-09
        相关资源
        最近更新 更多