网络日志

js 关于数组的常用方法浅记

参见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

1:push

定义与说明:

1)往数组最后添加元素
2)改变原数组
3)可以一次添加多个元素 eg:a_array.push(1,2,3)
4)返回结果为变更后的数组长度
let a_array = [1,12,123,1234]
let a_length = a_array.push(12345);
console.log("a_array:",a_array)
console.log("a_length:",a_length)

运行结果:

2:unshift

定义与说明:

1)往数组最前添加元素
2)改变原数组
3)可以一次添加多个元素 eg:a_array.unshift(1,2,3)
4)返回结果为变更后的数组长度
let a_array = [1,12,123,1234]
let a_length = a_array.unshift(1,2,4);
console.log("a_array:",a_array)
console.log("a_length:",a_length)

运行结果:

3:pop

定义与说明:

1)移除数组最后一个元素
2)改变原数组
3)返回结果为变被移除的元素
let a_array = [1,12,123,1234]
let a_changed = a_array.pop();
console.log("a_array:",a_array)
console.log("a_changed:",a_changed)

运行结果:

4:shift

定义与说明:

1)移除数组第一个元素
2)改变原数组
3)返回结果为变被移除的元素
let a_array = [1,12,123,1234]
let a_changed = a_array.pop();
console.log("a_array:",a_array)
console.log("a_changed:",a_changed)

运行结果:

5:splice

定义与说明:

1)向数组添加新项
2)改变原数组
3)返回结果为变被移除的元素(数组类型)
4)参数分别为:
1.操作的下标,如果下标超过数组最大下标则从数组末尾开始操作
2.需要删除的元素长度,可无,默认从操作下标到数组最末尾;如果为0则返回一个空数组;如果第二参数为非数字类型,则该参数会被当做0看待,见下图运行结果4
3.需要重新嵌入的元素,可无

let a_array = [1,12,123,1234]
let a_changed = a_array.splice(2,1,...[1,2,3]);//从下标==2处开始,删除一个元素,且插入1,2,3共三个元素
console.log("a_array:",a_array)
console.log("a_changed:",a_changed)

运行结果:运行结果1

运行结果2

运行结果3

运行结果4

5:slice

定义与说明:

1)从数组中提取出一个新的数组
2)不改变原数组
3)返回结果为变被移除的元素(数组类型)
4)参数分别为:数组提取起始下标和截止下标([startindex,endindex) ,左开右闭;没有截止下标默认到数组最末未;如果起止下标相同则不截取)

运行结果:

6:concat

1)组合连接两个及以上数组
2)不改变原数组!!
3)返回结果链接后的数组

运行结果:

7:join

定义与说明:

1)将数组各项以某个符号串联
2)不改变原数组
3)返回串联后的字符串
4)入参为串联符号,默认为英文逗号串联

运行结果:


8:some MDN

定义与说明:

1)用于判定数组中是否含有某个满足特定条件的值
2)返回值为布尔类型
3)满足匹配条件后立即返回true且退出遍历
4)可以按需丰富some的callback函数

运行结果:简单数组复杂数组复杂数组封装,入参增加匹配key和value

9:every MDN

定义与说明:

1)用于判定数组中是否所有项都满足一个特定的规则
2)返回值为布尔类型
3)如果遍历过程中遇到不满足特定规则的项,则立即返回false并退出遍历
4)可以按需丰富every的callback函数

运行结果:

简单数组复杂数组封装,入参增加匹配key和value

10:filter MDN

定义与说明:

过滤出满足特定条件的新数组

运行结果

10:forEach MDN

定义与说明:

1)对数组中每一项执行指定方法
2)可以用return立即退出当次循环
3)除try/catch外无法终止遍历
4)没有返回

运行结果

11:map MDN

定义与说明:

1)遍历数组后返回一个新的数组
2)不改变原数组,但是复杂类型会被callback改变
3)新建的数组显式为map中return的内容,如果不显式return则该项为undefined

运行结果

12:find/findIndex/findLast/findLastIndex MDN

定义与说明:

1)返回满足特定方法的第一个元素,如所有项都不满足特定方法则返回undefined

都是一些简单但容易混淆的概念,常看常新~