JavaScript 数组方法大全

数组过滤器

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]""
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值