数组过滤器
filter() 方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
stocks.filter(stock => stock.price < 1000) /*-------------------------------------------
| Array.filter
*-------------------------------------------
| 0: {name: "Apple", price: 321.85}
| 1: {name: "Disney", price: 118.77}
| 2: {name: "Netflix", price: 425.92}
*/
Array.map
map() 方法创建一个新数组,其中填充了对调用数组中每个元素调用所提供函数的结果。
stocks.map(stock => [stock.name, stock.price])/*-------------------------------------------
| Array.map
*-------------------------------------------
| 0: (2) ["Apple", 321.85]
| 1: (2) ["Tesla", 2471.04]
| 2: (2) ["Disney", 118.77]
| 3: (2) ["Google", 1434.87]
| 4: (2) ["Netflix", 425.92]
*/
数组查找
find() 方法返回所提供数组中满足所提供测试函数的第一个元素的值。如果没有值满足测试函数,则返回 undefined。
stocks.find(stock => stock.name === 'Tesla')/*-------------------------------------------
| Array.find
*-------------------------------------------
| {name: "Tesla", price: 2471.04}
*/
数组.some
some() 方法测试数组中至少一个元素是否通过所提供函数实现的测试。如果在数组中找到所提供的函数返回 true 的元素,则返回 true;否则返回 false。它不会修改数组。
stocks.some(stock => stock.price < 1000)/*-------------------------------------------
| Array.some
*-------------------------------------------
| true
*/stocks.some(stock => stock.price < 10)/*-------------------------------------------
| Array.some
*-------------------------------------------
| false
*/
数组.every
every() 方法测试数组中的所有元素是否通过所提供函数实现的测试。它返回一个布尔值。
stocks.every(stock => stock.price < 1000)/*-------------------------------------------
| Array.every
*-------------------------------------------
| false
*/stocks.every(stock => stock.price < 2500)/*-------------------------------------------
| Array.every
*-------------------------------------------
| true
*/
Array.forEach
forEach() 方法为每个数组元素执行一次提供的函数。
stocks.forEach(stock => console.log(stock))/*-------------------------------------------
| Array.forEach
*-------------------------------------------
| Outputs each item (stock object) from the array to the console
| returns void (aka undefined)
*/
数组归约
reduce() 方法对数组的每个元素执行(您提供的)reducer 函数,从而产生单个输出值。
stocks.reduce((total, stock) => total + stock.price, 0)/*-------------------------------------------
| Array.reduce
*-------------------------------------------
| 4772.45
*/
let names = ['Apple', 'Tesla', 'Disney', 'Google', 'Netflix']
数组.includes
include() 方法确定数组的条目中是否包含某个值,并根据需要返回 true 或 false。
names.includes('Apple')/*-------------------------------------------
| Array.includes
*-------------------------------------------
| true
*/names.includes('Microsoft')/*-------------------------------------------
| Array.includes
*-------------------------------------------
| false
*/
Array.indexOf
indexOf() 方法返回在数组中可以找到给定元素的第一个索引,如果不存在则返回 -1。
names.indexOf('Tesla')/*-------------------------------------------
| Array.indexOf
*-------------------------------------------
| 1
*/
names = ['Apple', 'Tesla', 'Disney', 'Google', 'Netflix', 'Tesla']
Array.lastIndexOf
lastIndexOf() 方法返回在数组中可以找到给定元素的最后一个索引,如果不存在则返回 -1。从 fromIndex 开始向后搜索数组。
names.lastIndexOf('Tesla')/*-------------------------------------------
| Array.lastIndexOf
*-------------------------------------------
| 5
*/
数组排序
sort() 方法对数组的元素进行就地排序并返回排序后的数组。默认排序顺序为升序,基于将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列。
排序的时间和空间复杂度无法保证,因为它取决于实现。
names.sort()/*-------------------------------------------
| Array.sort
*-------------------------------------------
| ['Apple, 'Disney', 'Google', 'Netflix', 'Tesla', 'Tesla']
*/
数组切片
slice() 方法将数组的一部分的浅表副本返回到从开始到结束(不包括结束)选择的新数组对象中,其中开始和结束表示该数组中项目的索引。原始数组不会被修改。
names.slice(3)/*-------------------------------------------
| Array.slice
*-------------------------------------------
| ['Netflix', 'Tesla', 'Tesla']
|
*/
数组连接
join() 方法通过连接数组(或类似数组的对象)中的所有元素(用逗号或指定的分隔符字符串分隔)来创建并返回一个新字符串。如果数组只有一项,则将返回该项而不使用分隔符。
names.join()/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple,Disney,Google,Netflix,Tesla,Tesla"
*/
names.join(' - ')/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple - Disney - Google - Netflix - Tesla - Tesla"
*/names.join('\\')/*-------------------------------------------
| Array.join
*-------------------------------------------
| "Apple\Disney\Google\Netflix\Tesla\Tesla"
*/
数组到字符串
toString() 方法返回一个表示指定数组及其元素的字符串。
names.toString()/*-------------------------------------------
| Array.toString
*-------------------------------------------
| "Apple,Disney,Google,Netflix,Tesla,Tesla"
*/stocks = [
{ name: 'Apple', price: 321.85 },
{ name: 'Tesla', price: 2471.04 },
{ name: 'Disney', price: 118.77 },
{ name: 'Google', price: 1434.87 },
{ name: 'Netflix', price: 425.92 }]stocks.toString()/*-------------------------------------------
| Array.toString
*-------------------------------------------
| "[object Object],[object Object],[object Object],[object Object],[object Object]""
*/