
130
|
第
5
章
const
animals = ['cat', 'walrus', 'lion', 'cat'];
//
删除一个元素,添加两个新元素
animals.splice(2, 1, 'zebra', 'elephant');
//
现在
animals = ['cat', 'walrus', 'zebra', 'elephant', 'cat']
你可以在循环中使用
indexOf()
方法查找并删除一系列匹配元素。不过,实现相同
的操作,使用
filter()
方法往往更简洁,定义一个函数挑出想保留的元素即可(见
5.9
节)。
5.16
按属性值排序对象数组
5.16.1
问题
你想根据属性值排序包含对象的数组。
5.16.2
方案
Array.sort()
方法重新排列数组中元素的顺序。例如,按照从小到大的顺序排列数
组中的数字元素,或者按照字母表顺序排列数组中的字符串元素。但是,你并不总
是想使用标准的数组排序系统。你可以把一个比较函数传给
sort()
方法,通过这个
函数排列元素的顺序。
传入的比较函数接收两个参数(对应两个数组元素),经比较之后返回一个数字,
表示比较结果。如果两个值相等,返回
0
;如果第一个值比第二个值小,返回
-1
;
如果第一个值比第二个值大,返回
1
。
下面举个简单的例子,对包含人物信息对象的数组进行排序。
const
people = [
{ firstName: 'Joe', lastName: 'Khan', age: 21 },
{ firstName: 'Dorian',