理解数组
数组是一种基本的数据结构,用于按顺序存储元素的集合。但是元素可以随机存取,因为数组中的每个元素都可以通过数组索引来识别。
在JavaScript的数组对应Array对象
JavaScript Array对象
数组的方法
arr.splice()
arr.splice(index, number, item1…itemX)
用于添加、删除或修改数组中的元素
实例修改数组中的元素
var arr = [1, 2, 3, 4, 5]
arr.splice(0, 2, "a", "b")
console.log(arr) //["a", "b", 3, 4, 5]
arr.sort()
arr.sort([compareFunction])
用于对数组元素进行排序,默认排序顺序是在将元素转换为字符串toString(),然后比较它们的UTF-16代码单元值序列时构建的。要对数字进行排序的话要设置compareFunction。
如果 compareFunction(a, b) 的返回值小于 0 ,那么 a 会被排列到 b 之前;
如果 compareFunction(a, b) 的返回值等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
如果 compareFunction(a, b) 的返回值大于 0 , b 会被排列到 a 之前。
通常对数字数组排序的方法如下
// 升序
arr.sort((a,b)=>a-b)
// 降序
arr.sort((a,b)=>b-a)
跟python的用法区分开,
// 升序
list.sort( key=None, reverse=False)
// 降序
list.sort( key=None, reverse=True)
arr.forEach()
array.forEach(function(currentValue, index, arr), thisValue)
用于调用数组的每个元素,并将元素传递给回调函数。
用forEach()求和
var sum = 0,
arr = [1,3,4]
arr.forEach(item => sum += item)
arr.reduce()
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
对数组中的每个元素执行一个reducer函数(升序执行),将其结果汇总为单个返回值。
- accumulator 累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue。
- currentValue 数组中正在处理的元素。
reduce()的运行
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
return accumulator + currentValue;
});
用arr.reduce()求和