【发布时间】:2021-07-14 19:53:44
【问题描述】:
我被要求编写一个将元素添加到数组末尾的函数。但是,如果添加的元素与数组中的元素之一具有相同的值,则不应将该元素添加到数组中。像 add([1,2],2) 应该只返回 [1,2]
我的代码是:
function add (arr, elem){
if (arr.indexOf(elem) != -1){
return arr;
}
else {
let newArr = arr.push(elem);
return newArr;
}
}
console.log(add([1,2],3)); // here returns a number '3' instead of an array[1,2,3]
谁能解释为什么我在 else 中得到一个数字而不是数组 'newArr'?
【问题讨论】:
-
因为根据docs
push返回数组的新长度 -
array.push()返回数组的长度。如果你想要整个数组,只需让你的函数返回arr,不要费心设置newArr。
标签: javascript arrays return-value array-push