JS数组操作方法

6 篇文章 1 订阅
1.合并数组 - concat()

拼接数组 ,返回新数组,不会改变原数组

var arr = [1,2,3,4,5,6];
var bb = arr.join()
console.log(bb)// 1 1,2,3,4,5,6
2.用数组的元素组成字符串 - join()

将数组中所有元素都转化为字符串并连接在一起,不会改变原数组

var arr = [1,2,3,4,5,6];
console.log(arr.join())// 1,2,3,4,5,6
console.log(arr.join("-"))// 1-2-3-4-5-6
3.删除数组的最后一个元素 - pop()

会改变原数组

var arr = [1,2,3,4,5,6];
arr.pop()
console.log(arr)// [1, 2, 3, 4, 5]
4.数组的末尾添加新的元素 - push()

会改变原数组

var arr = [1,2,3,4,5,6];
arr.push(7)
console.log(arr)// [1, 2, 3, 4, 5, 6, 7]
5.将一个数组中的元素的顺序反转排序 - reverse()

会改变原数组

var arr = [1,2,3,4,5,6];
arr.reverse()
console.log(arr)// [6, 5, 4, 3, 2, 1]
6.删除数组的第一个元素 - shift()

会改变原数组

var arr = [1,2,3,4,5,6];
arr.shift()
console.log(arr)// [2, 3, 4, 5, 6]
7.在数组的开头添加新元素 - unshift()

会改变原数组

var arr = [1,2,3,4,5,6];
arr.unshift(0)
console.log(arr)// [0, 1, 2, 3, 4, 5, 6]
8.从一个数组中选择元素 - slice()

不会改变原数组,会返回一个截取后的新数组

var arr = [1,2,3,4,5,6];
arr.slice(1,4);
console.log(arr); // (6) [1, 2, 3, 4, 5, 6]
console.log(arr.length); // 6
console.log(arr.slice(1,4)); // (3) [2, 3, 4]
9.数组排序 - sort()

会改变原数组

var arr = [1, -1, 3, 18, 12];
arr.sort(function(a, b) {
	return a - b
})
console.log(arr);// [-1, 1, 3, 12, 18]

var arr = ["George","John","Thomas","James","Adrew","Martin"];
arr.sort();
console.log(arr);// ["Adrew", "George", "James", "John", "Martin", "Thomas"]
10.在数组的第2位置添加一个元素 - splice()

会改变原数组

splice(index,howmany,tem1,…,itemX)

index表示从什么位置开始添加或删除数组元素

howmany表示删除的元素数量,如果为0,则表示不删除数组元素

tem1,…,itemX表示新增的数组元素

var arr = [1,2,3,4,5,6];
arr.splice(1,0);
console.log(arr);// [1, 2, 3, 4, 5, 6]
arr.splice(1,1);
console.log(arr);// [1, 3, 4, 5, 6]
arr.splice(1,0,7,8);
console.log(arr);// [1, 7, 8, 3, 4, 5, 6]
11.转换数组到字符串 -toString()

不会改变原数组

var arr = [1,2,3,4,5,6];
arr.toString()
console.log(arr)// [1, 2, 3, 4, 5, 6]
console.log(arr.toString());// 1,2,3,4,5,6
12.从前向后搜索,返回数组查找值的第一个索引 -indexOf()

不会改变数组,返回指定数值的数组下标

var arr = [1,2,3,4,5,6];
console.log(arr.indexOf(2)); // 1 返回值为2的数组的下标
13.从后向前搜索,返回数组查找值的最后一个索引 -indexOf()

不会改变数组,返回指定数值的数组下标

var arr = [1,2,3,4,5,6];
console.log(arr.lastIndexOf(4)); // 3 返回值为4的数组的下标
14.遍历数组 -forEach()

不会改变数组且方法没有返回值
注:

1)forEach 使用return只是跳出了当前的循环, 使用break报语法错误。

2)forEach 无法在所有元素都传递给调用的函数之前终止遍历,可以用for代替forEach。

var arr = [1,2,3,4,5,6];
arr.forEach(function(element, index) { 
    console.log(element, index);// 参数分别为:遍历的数组内容,内容对应的数组索引
    // 3 2 1
    // 3 3 2
    // 3 4 3
    // 3 5 4
    // 3 6 5
})
console.log(arr);// [1, 2, 3, 4, 5, 6]
15.遍历数组 -map()

不会改变原数组且返回一个新数组

var arr = [1,2,3,4,5,6];
var arr1 = arr.map(function(a) { //遍历数组,并将返回每一项调用结果组成新的数组
    return a * 2;
})
console.log(arr);// [1, 2, 3, 4, 5, 6]
console.log(arr1);// [2, 4, 6, 8, 10, 12]
16.数组过滤 -filter()

不会改变原数组,且返回一个新数组

var arr = [1,2,3,4,5,6];
var arr1 = arr.filter(function(a) { // 返回满足过滤条件组成的数组
    return a > 2;
})
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(arr1); // [3, 4, 5, 6]
17.判断数组每一项是否满足条件 -every()

不会改变原数组,且返回一个布尔值

var arr = [1,2,3,4,5,6];
var arr1 = arr.every(function(a) { // 判断数组中每一项都是否满足条件,所有项都满足条件才会返回true
    return a > 2;
})
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(arr1); // false
18.判断数组其中一项是否满足条件 -some()

不会改变原数组,且返回一个布尔值

var arr = [1,2,3,4,5,6];
var arr1 = arr.some(function(a) { // 判断数组中是否有一项满足条件,如果有就会返回true
    return a > 2;
})
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(arr1); // true
19.reduce()

不会改变原数组,迭代数组的所有项,然后构建一个最终返回的值,从数组的第一项开始,逐个遍历到最后

reduce接受一个函数,函数有四个参数,分别是:1、上一次的值;2、当前值;3、当前值的索引;4、数组;

var arr = [1,2,3,4,5,6];
 var sum = arr.reduce(function(previousValue, currentValue, index, array){
    return previousValue + currentValue;
});
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(sum); // 21
20.reduceRight()

不会改变原数组,迭代数组的所有项,从数组的最后一项开始,向前遍历到第一项

reduceRight接受一个函数,函数有四个参数,分别是:1、上一次的值;2、当前值;3、当前值的索引;4、数组;

var arr = [1,2,3,4,5,6];
var sum = arr.reduceRight(function(pre, cur, index, array) { 
    return pre + cur;
})
console.log(arr); // [1, 2, 3, 4, 5, 6]
console.log(sum); // 21
21.填充数组 -fill()

会改变原数组,元素填充

var arr = [1,2,3,4,5,6];
// arr.fill(value, start, end)
// value:填充值。
// start:填充起始位置,可以省略。
// end:填充结束位置,可以省略,实际结束位置是end-1。
arr.fill(1,2,4); // 用1填充数组中从起始索引到终止索引内的全部元素
console.log(arr); // (5) [1, 2, 1, 1, 5, 6]
22.数组查找索引 -findIndex()

不会改变原数组,返回数组中满足提供的测试函数的第一个元素的索引

var arr = [1,2,3,4,5,6];
/*满足条件,返回下标位置1*/
var index = arr.findIndex((value)=>value === 2)
console.log(arr)// [1, 2, 3, 4, 5, 6]
console.log(index)// 1
/*没有满足条件的,返回-1*/
var index = arr.findIndex((value)=>value === 12)
console.log(index)// -1
23.数组查找值 -find()

不会改变原数组,返回数组中满足提供的测试函数的第一个元素的值

var arr = [1,2,3,4,5,6];
var arr1 = arr.find((value)=>value > 2)
console.log(arr)// [1, 2, 3, 4, 5, 6]
console.log(arr1)// 3
24.includes()

用来判断一个数组是否包含一个指定的值,返回 true或 false

var arr = [1,2,3,4,5,6];
console.log(arr.includes(2)); // true
console.log(arr.includes(7)); // false
25.Array.from()

将伪数组或可迭代对象(包括arguments Array,Map,Set,String…)转换成数组对象

// Array.from(arrayLike, mapFn, thisArg)
// arrayLike:想要转换成数组的伪数组对象或可迭代对象
// mapFn (可选参数):如果指定了该参数,新数组中的每个元素会执行该回调函数
// thisArg (可选参数):可选参数,执行回调函数 mapFn 时 this 对象
// 返回值:一个新的数组实例

var arrayLike = {
    0: 'tom', 
    1: '65',
    2: '男',
    3: ['jane','john','Mary'],
    'length': 4
}
var arr = Array.from(arrayLike)
console.log(arr) // ['tom','65','男',['jane','john','Mary']]
26.数组扁平化 -flat()
var arr = [[1,2],[3,4]]
var arr1 = arr.flat()
console.log(arr1,arr)// [1, 2, 3, 4] [[1,2],[3,4]]

会改变原数组的方法

pop、push、shift、unshift、fill、sort、reverse、splice

参考文章:js数组操作方法大全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值