gpt4 book ai didi

javascript - 这个未定义的值从哪里来?

转载 作者:行者123 更新时间:2023-12-03 07:18:59 25 4
gpt4 key购买 nike

我正在尝试比较两个数组并返回一个新数组,其中包含仅在两个给定数组之一中找到的任何项目。

例如比较结果[1,2,3,4][1,2,3]应该是:[4] .

问题是,我得到 'undefined'执行循环后的元素。

function diff(arr1, arr2){
var newArr = [];
for(i=arr1[0]; i<=arr1.length; i++){
if(arr2.indexOf(arr1[i])=== -1){
newArr.push(arr1[i]);
}
}
console.log(newArr);
};

diff([1,2,3,4], [1,2,3]);

结果是 [4, undefined] 。我做错了什么?

最佳答案

您的for循环定义不正确。它应该从 i=0 开始并运行直到 i<arr1.length

function diff(arr1, arr2){
var newArr = [];
for(i=0; i<arr1.length; i++){
if(arr2.indexOf(arr1[i])=== -1){
newArr.push(arr1[i]);
}
}
console.log(newArr);
};

运行直到 i<=arr1.length您尝试迭代一次超过需要的次数,从而导致在结果数组中添加最终未定义的值。正如 Mario Garcia 在评论中所说,在最终迭代中,循环将尝试访问 arr[4]它不存在,因此未定义。

关于javascript - 这个未定义的值从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36287731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com