数组是我们在编程中,使用最为广泛的数据结构,在很多编程语言里面都内置许多对数组进行操作的API,极高的提高编程效率。在这里主要介绍一下JavaScript数组里面常用的API。
1.push()
压入元素,直接改变原数组,返回值为改变后的数组。
var arr = [1,2];
arr.push(3);
arr.push(4);
console.log(arr);
//输出:[1,2,3,4]
2.pop()
从末尾弹出元素,直接改变原数组,返回的值是弹出的元素。
var arr = [1,2,3];
var res = arr.pop();
console.log(arr);
console.log(res);
//输出:[1,2];3
3.shift()
从数组前面取出一个元素,返回的值是弹出的元素,原数组会改变。
var arr = [1,2,3];
var res = arr.shift();
console.log(arr);
console.log(res);
//输出:[2,3];1
4.unshift()
从数组前面压入一个元素
var arr = [1,2,3];
arr.unshift(0);
console.log(arr);
//输出:[0,1,2,3]
5.fill()
指定位置添加数组元素
console.log([1, 2, 3, 4].fill("5", 0, 1));
//输出:[5,2,3,4]
6.slice()
使用 slice 方法从数组中截取部分元素组合成新数组(并不会改变原数组),不传第二个参数时截取到数组的最后元素。
var arr = [0, 1, 2, 3, 4, 5, 6];
console.log(arr);
console.log(arr.slice(1, 3));
//输出: [0, 1, 2, 3, 4, 5, 6];[1, 2]
7.sclice()
使用 splice 方法可以添加、删除、替换数组中的元素,(会对原数组进行改变),返回值为删除的元素。
var arr = [0, 1, 2, 3, 4, 5, 6];
console.log(arr.splice(1, 3)); //返回删除的元素 [1, 2, 3]
console.log(arr); //删除数据后的原数组 [0, 4, 5, 6]
8.join()
使用join()可以是数组变成字符串。
var arr = [1, "hello", "js"];
console.log(arr.join('-'));
//输出:1-hello-js
9.split()
split 方法用于将字符串分割成数组,类似join方法的反函数。
var price = "99,78,68";
console.log(price.split(","));
//输出:[99,78,68]
10.concat()
concat()用于连接两个或多个数组,元素是值类型的是复制操作,如果是引用类型还是指向同一对象。
var array1 = [5, 6];
var arr1 = [1, 2];
var arr2 = [3, 4];
console.log(array1.concat(hd, cms));
//输出:[5, 6, 1, 2, 3, 4]
11.indexOf()
使用 indexOf 从前向后查找元素出现的位置,找到的化返回索引,如果找不到返回 -1。
var arr = [1,2,3];
console.log(arr.indexOf(1));
console.log(arr.indexOf(4));
//输出:0;-1
12.find()
find 方法找到后会把值返回出来。
var arr = [1,2,3,4,5];
var res = arr.find(
(item) => {
return item == 1;
}
)
console.log(res);
//输出:1
13.findIndex
findIndex 与 find 的区别是返回索引值,参数也是 : 当前值,索引,操作数组。
var arr = [1,2,3,4,5];
var res = arr.findIndex(
(item) =>{
return item == 5;
}
)
console.log(res);
//输出: 4
14.reverse
反转数组顺序.
var arr = [1,2,3,4,5];
console.log(arr.reverse());
//输出:[5,4,3,2,1]
15.forEach循环遍历
forEach使函数作用在每个数组元素上,但是没有返回值。
var arr = [1,2,3,4,5];
arr.forEach(
(item,index,array) => {
console.log(item,index,array);
}
)
输出:1 0 (5) [1, 2, 3, 4, 5]
2 1 (5) [1, 2, 3, 4, 5]
3 2 (5) [1, 2, 3, 4, 5]
4 4 3 (5) [1, 2, 3, 4, 5]
5 4 (5) [1, 2, 3, 4, 5]
16.for/in遍历
遍历时的 key 值为数组的索引。
var arr = [1,2,3,4,5];
for(item in arr){
console.log(item);
}
//输出0,1,2,3,4
17.for/of遍历
与 for/in 不同的是 for/of 每次循环取其中的值而不是索引。
var arr = [1,2,3,4,5];
for(item of arr){
console.log(item);
}
//输出1,2,3,4,5
18.every()
every 用于递归的检测元素,要所有元素操作都要返回真结果才为真。
var user = [
{ name: "李四", js: 89 },
{ name: "马六", js: 55 },
{ name: "张三", js: 78 }
];
var resust = user.every(user => user.js >= 60);
console.log(resust);
输出:false
19.some()
使用 some 函数可以递归的检测元素,如果有一个返回true,表达式结果就是真。第一个参数为元素,第二个参数为索引,第三个参数为原数组。
var arr = [1,2,3,4,5];
var res = arr.some(
(item,index,array) => {
return item = 2;
}
);
console.log(res);
输出:true
20.filter()
使用 filter 可以过滤数据中元素。
var arr = [1,2,2,2,2,3,4];
var res = arr.filter(
(item,index,arr) => {
if(item == 2){
return true;
}
}
);
console.log(res);
//输出:[2,2,2,2]
21.map()
使用 map 映射可以在数组的所有元素上应用函数,用于映射出新的值。
var arr = [
{title:'hello',id:1},
{title:'js',id:2}
];
var res = arr.map(
(item,index,arr) => {
return item.title;
}
);
console.log(res);
输出:['hello','js']
22.reduce()
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。
var arr = [1,2,3,4,5];
var sum = arr.reduce(
(total,num) => {
return total + num;
}
);
console.log(sum);
输出:15
1174



被折叠的 条评论
为什么被折叠?



