此功能可以执行我想要的操作,但不能执行我期望的操作。我希望它能创建两个数组,因为... args创建了一个传递参数的数组,而map()对它所连接的数组的每个值都做了一些处理,并将结果存储在一个新数组中。有人可以告诉我为什么这个函数不能创建两个数组吗?
let practiceFunc = (...args) => {
let arr = args.map((e) => {
return e + 1
})
return arr ;
}
console.log(practiceFunc(1,2,3)) ;
document.write(practiceFunc(1,2,3)) ;
答案 0 :(得分:0)
它确实创建了两个数组,但是您只能使用一个-arr
,即从函数返回的数组。也使用args
,但是就像map
中使用的数组一样-您可以轻松地省略它并使用arguments
(但是,这需要ES5函数,因为箭头函数不需要拥有自己的arguments
,则必须使用Object.values
)提取值:
let practiceFunc = function() {
let arr = Object.values(arguments).map((e) => {
return e + 1
});
return arr;
}
console.log(practiceFunc(1, 2, 3));
document.write(practiceFunc(1, 2, 3));