Open LLwanran opened 4 years ago
答案:
在不改变原数组的前提下,向该数组的首位添加一个新的元素,得到一个新数组,假设新增元素为0:
0
concat
let arr = [1, 2, 3, 4] let newArr = [].concat(0, arr) console.log(arr) // [1, 2, 3, 4] console.log(newArr) // [0, 1, 2, 3, 4]
let arr = [1, 2, 3, 4] , newArr = [0, ...arr] console.log(arr) // [1, 2, 3, 4] console.log(newArr) // [0, 1, 2, 3, 4]
reduce
let arr = [1, 2, 3, 4] , newArr = arr.reduce((acc, cur) => { acc.push(cur) return acc }, [0]) console.log(arr) // [1, 2, 3, 4] console.log(newArr) // [0, 1, 2, 3, 4]
同样的前提条件下,删除该数组的最后一个元素,得到一个新数组:
slice
let arr = [1, 2, 3, 4] , newArr = arr.slice(0, -1) console.log(arr) // [1, 2, 3, 4] console.log(newArr) // [1, 2, 3]
let arr = [1, 2, 3, 4] , last = arr.length - 1 , newArr = arr.reduce((acc, cur, idx) => { if (idx !== last) { acc.push(cur) } return acc }, []) console.log(arr) // [1, 2, 3, 4] console.log(newArr) // [1, 2, 3]
解答思路:
这道题主要考察数组相关操作,包括一些数组 API 的使用。
我们需要清楚哪些 API 不会修改原数组,哪些 API 在使用的时候会对原数组造成影响,简单归纳一下:
不修改原数组
forEach
map
every
some
filter
reduceRight
keys
values
entries
includes
find
findIndex
flat
flatMap
修改原数组
splice
pop
push
shift
unshift
sort
reverse
fill
copyWithin
答案:
在不改变原数组的前提下,向该数组的首位添加一个新的元素,得到一个新数组,假设新增元素为
0
:concat
reduce
同样的前提条件下,删除该数组的最后一个元素,得到一个新数组:
slice
reduce
解答思路:
这道题主要考察数组相关操作,包括一些数组 API 的使用。
我们需要清楚哪些 API 不会修改原数组,哪些 API 在使用的时候会对原数组造成影响,简单归纳一下:
不修改原数组
slice
concat
forEach
map
every
some
filter
reduce
reduceRight
keys
values
entries
includes
find
findIndex
flat
flatMap
修改原数组
splice
pop
push
shift
unshift
sort
reverse
fill
copyWithin