
120
|
第
5
章
//
在中间放两个新动物
const
extraAnimals = [...firstHalf, 'emu', 'platypus', ...secondHalf];
这个例子只是随便一举,索引数字都是硬编码的。不过,你可以结合数组搜索功能
和
findIndex()
方法(见
5.13
节)查找切分数组的具体位置。
slice()
方法容易与
splice()
方法混淆,后者用于替换或删除数组的一部
分。与
slice()
方法不同的是,
splice()
方法执行的是就地改动,对原数
组有影响。更符合现代思想的做法是,锁定对象,尽量保持对象的不可变性
(因此使用
const
),创建一个副本供修改。鉴于此,除非有足够的理由使
用
splice()
方法(例如,在你遇到的情况下,性能差异显著),最好坚持
使用
slice()
方法。
5.8.4
参考
5.15
节介绍如何使用
slice()
方法删除数组的一部分。
5.9
提取符合指定条件的数组元素
5.9.1
问题
你想找出一个数组中符合特定条件的所有元素,把它们复制到一个新数组中。
5.9.2
方案
使用
Array.filter()
方法测试每一个元素。
function
startsWithE(animal) {
return
animal[0].toLowerCase() === 'e';
}
const
animals = ['elephant', 'tiger', 'emu', 'zebra', 'cat', 'dog',
'eel', 'rabbit', 'goose', ...