javascript - 循环遍历数组对象以查找重复项。为什么一个元素返回 "undefined"?

标签 javascript arrays object

我试图在不使用任何数组库方法(没有.push.slice.pop 等)。我认为我非常接近解决方案,但我作为测试传递的数组 [2,2,3,3,4,2,2,2,2] 正在返回 [2,undefined,3,undefined,4](在控制台中看起来像 [2, ,3, ,4])而不是 [2,3, 4]。知道这里发生了什么吗?我还尝试添加一个 if 语句来检查 array[i] 在将 returnArray[i] 分配给 array[i 之前是否未定义] 那没有用。

function unique(array){
    var tempObject = {};
    var returnArray = [];
    for (var i = 0; i < array.length; i++){
      if (!tempObject.hasOwnProperty(array[i])){
        tempObject[array[i]] = true;
        returnArray[i] = array[i];
      }
    }
    return returnArray;
  }
}

最佳答案

尝试 returnArray[returnArray.length] = array[i]; 而不是 returnArray[i] = array[i];

关于javascript - 循环遍历数组对象以查找重复项。为什么一个元素返回 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558271/

相关文章:

arrays - 在线性时间内从阵列中删除重复项,而无需额外的阵列

javascript - 如何仅获取数组的前n%?

javascript - 如何按值删除javascript对象项?

javascript - 使用 yepnope,我怎么知道 css 资源是否加载成功?

javascript - 如何从 chrome 扩展调用页面的 javascript 函数?

java - 通过读取文件创建java数组

javascript - 如何在对象数组中设置每个对象的属性?

javascript - 使用自定义键将数组转换为对象

javascript - 将查询结果从 MySQL 发送到 .ejs

javascript - 无法使用 PhoneGap Build 引用外部文件