通过数组下标获取值都有哪些方法_js: 数组

定义: 数组是一种有序数据结合。

创建方式:

直接量 var a = [1, 2]

构造函数: var b = new Array(1, 2) // 注意: 构造函数中只传一个参数会变成长度。


数组API

var arr = [0, 1, 2]

push 添加元素:返回length,并把参数添加到数组中。

61a3614546a76f5410778a7fd5cb087b.png

pop 删除元素: 删除最后一位元素,删除的元素可以接受作为变量值。

b298cc79891ed86cbd5e549b86329966.png

unshift: 在头部插入元素

b5ce52ae2cb1df3a414deaf0e8289f34.png

shift: 在头部删除第一个元素

1298f4dc1e615d760e7a7332fc07a5d7.png

concat: 连接数组成为一个新数组,参数可以是其他数组的名称,也可以是数组。

a377c6f3fdac5d53a28a0a4afd56116d.png

splice 删除并插入元素:

第一个参数为从该下标开始删除

第二个参数为删除多少个

后面的参数为增加的元素(可选)

8af6373dcb9d6c499d8fcc6276b5824e.png
没看见括号

没看见括号....

slice 截取元素生成新数组

第一个参数: 从该下标开始拷贝,

第二个参数: 到该下标之前的一位结速(不包括)

只传一个参数: 从该下标之后的所有

只传一个参数并且是负数: 到这拷贝到这里

99dfb7ed6aa82772adb4b8b478fdaea7.png

reverse: 倒着排序

8019ad06113382a3527af29aebbeee45.png

sort: 排序。默认0-9, a-z。也可以自己自定义规则。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

c73483b9bd51d0f2e4752b2f6cda9e51.png

第一个参数: 用于比较的第一个参数

第二个参数: 用于比较的第二个参数

  • 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
  • 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
  • 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
var arr = ['apple', 'banana', 'pear', 'orange'];
arr.sort(function(a, b) {
    if(a.length < b.length) {
        return -1;
    }else if(a.length > b.length) {
        return 1;
    }else {
        return 0;
    }
})

d825c2a7f3c22e9faed5ed98ce3a1366.png

indexOf: 获取第一个索引

第一个参数: 要查找的元素

第二个参数: 从哪里开始查找

eb078b5b515cb0ed17da6c48bbf227e2.png

lastIndexOf:倒着往前查找

a3ba07b74fe609abf67c5d54adaee9c9.png

forEach 每个元素定义回调,每个元素都会执行。

第一个参数是值,

第二个参数是索引,

第三个参数是对应的数组(可选)

var arr = ['apple', 'banana', 'pear', 'orange'];
arr.forEach(fn);
function fn(value, index, arr) {
     console.log(`value: ${value} - index: ${index} - arr: ${arr}`)
}

e436ea28549f9a9f0ef9c16da3582225.png

every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

注意:若收到一个空数组,此方法在一切情况下都会返回true

var arr = [10, 12, 27, 2];
var arr1 = [6, 20, 11, 8];

function greater(ar) {
    return ar >= 5;
}

d41b081ece5703c833b3aef6be38eecc.png

some() 方法测试数组中是不是有元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。如果用一个空数组进行测试,在任何情况下它返回的都是false

var arr = [10, 12, 27, 2];
var arr1 = [6, 20, 11, 8];

function greater(ar) {
    return ar >= 25;
}

92d4282f5ec650a0686cefc94f14c52e.png

map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

var arr = [10, 12, 27, 2];

function fn(x) {
     return x + 1;
}

5a4cf646f048b4c5ed68245ba9464b87.png

filter 返回结果为true的数组

var arr = [10, 12, 27, 2, 4, 7, 13];

function fn(x) {
    return x < 10;
 }

5629e5ced30eac3eaa45cbe2b017482a.png

reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

函数第一个参数是累积器,

第二个是当前值

var arr = [1, 2, 3, 4];

function fn(a, b) {
    return a + b;
}

2b35ed1acb2722a02c5ef0ce6fcd03a1.png

reduceRight() 反向汇总。

函数第一个参数是累积器,

第二个是当前值

var arr = [1, 2, 3, 4];
function fn(a, b) {
    console.log(a, b)
    return a + b;
}

e6226399332e3208f86a9d16eca8df83.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值