es3数组常用方法
es5数组常用方法
es6数组常用方法
es7数组常用方法
- push():添加 - 数组末尾
let a = [1,2,3];
a.push(4);
console.log(a); [1,2,3,4]
- pop():删除 - 数组末尾
let a = [1,2,3];
a.pop();
console.log(a);[1, 2]
3.unshift:添加 - 数组开头
let a = [1,2,3];
a.unshift(4);
console.log(a);// [4, 1, 2, 3]
4.shift:删除 - 数组开头
let a = [1,2,3];
a.shift();
console.log(a); // [2, 3]
5.split:字符串分割为字符串数组
let a = "1,2,3,4,5";
console.log(a.split(","));// ['1', '2', '3', '4', '5']
6.join:数组转换为字符串 - 对原数组数据不影响
const a = [1,2,3,4,5]
console.log(a.join());// 1,2,3,4,5
7.concat:合并数组 - 对原数组数据不影响
var a = [1,2,3];var b = [4,5,6];
console.log(a.concat(b)); // [1,2,3,4,5,6]
8.reverse:反转数据 - 对原数组产生影响
var r = [1,2,3,4];
console.log(r.reverse());// [4, 3, 2, 1]
console.log(r); // [4, 3, 2, 1]
9.sort: 排序 - a-b从小到大,b-a从大到小
let sort = [1,25,6,323,745,12,8,9];
sort.sort(function(a,b){
return a - b;
});
(8) [1, 6, 8, 9, 12, 25, 323, 745]
10.slice:截取 - 返回截取的数组 - 原数组不变
var s = [1,23,4,5,6,7];
s.slice(2,4);// 截取(2-4之间的数据:截前不截后)下标的数据:[4, 5]
s.slice(2);// 截取(2之后的数据)下标的数据:[4, 5, 6, 7]
console.log(s)// 原数组变为[1,23,4,5,6,7];
11.splice: 截取 - 剩下的数组 - 原数组变化)
var s = [1,23,4,5,6,7];
s.slice(2,4);// 截取(从下标2开始截取,截取4个)下标的数据:[4,5,6,7]
console.log(s)// 原数组变为[1,23]
参数说明(删除,替换,插入)
var s = [1,23,4,5,6,7];
s.splice(2,2,'d'); // 在下标2的位置插入d,替换2个元素
console.log(s); [1, 23, 'd', 6, 7]
12.toString:数组转为字符串(与join类似)
const a = [1,2,3,4,5]
console.log(a.toString()); // 1,2,3,4,5
1.indexOf():找到第一次相匹配的数据:找到返回对应数组的下标;未找到返回-1
var i = [1,2,34,5,6];
console.log(i.indexOf(5)); // 3
console.log(i.indexOf(11)); // -1
2.lastIndexOf():indexOf():找到最后一次相匹配的数据:找到返回对应数组的下标;未找到返回-1
var i = [1,2,34,5,5,6];
console.log(i.lastIndexOf(5)); // 4
3.map:根据想要的数据,返回一个新数组 - 原数组不改变
let arr1 = [
{id:1,name:'张三',age:14},
{id:2,name:'李四',age:15},
{id:3,name:'王五',age:16},
];
let arr2 = arr1.map((obj,index,arr) => {
// obj:对象
// index:下标
// arr:arr数组
return {
id:obj.id,
name:obj.name
}
});
console.log(arr2) ;// [{id:1,name:'张三'}, {id:2,name:'李四'},{id:3,name:'王五'}]
4.filter:过滤数据 - 原数组不改变
let arr3 = [
{id:1,name:'张三',age:14},
{id:2,name:'李四',age:15},
{id:3,name:'王五',age:16},
];
let arr4 = arr1.filter((item,index,arr) => {
return item.name == "张三"
});
console.log(arr4);// [{id: 1, name: '张三', age: 14}]:
5.every:判断是否符合该条件,每一个都符合返回true,有一个不符合即返回false
let e = [1,2,3,4,5,66];
let er = e.every(function(item,index,arr){
return item> 3
});
er // false
6.some:判读是否符合该条件,有一个符合返回true
let e = [1,2,3,4,5,6];
let er = e.some((item,index,arr) => {
return item > 3
});
er // true
7.reduce
(1):求和
let r = [1,2,3,4,5];
let r2 = r.reduce((prev,cur,index,arr) => {
console.log(prev); // 上一次回调函数的值
console.log(cur); // 当前被处理的数值
console.log(index); // 下标
console.log(arr);// 原数组
return prev + cur;
});
console.log(r2);
(2):计算每个值得次数
let a1= [1,2,3,4,5];
let a2 = a1.reduce((prev,cur) => {
if(cur in prev){
prev[cur]++
}else{
prev[cur] = 1
}
return prev
},{});
console.log(a2); // {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
(3):去重
let a3 = [1,2,3,4,5,6,6,6,6];
let a2 = a3.reduce((prev,cur) => {
if(!prev.includes(cur)){
return prev.concat(cur)
}else{
return prev
}
},[]);
console.log(a2); // [1, 2, 3, 4, 5, 6]
1.Array.from():将类数组转换为数组
let arrayLike = {
0: 'tom',
1: '65',
2: '男',
3: ['jane','john','Mary'],
'length': 4
}
let arr = Array.from(arrayLike)
console.log(arr) // ['tom','65','男',['jane','john','Mary']]
2.Array.of():将一串数值转换为数组
const a = Array.of(2,4,6,8);
console.log(a); // [2,4,6,8]
3.copyWithin():从数组的指定位置拷贝元素到数组的另一个指定位置中
参数:target(必须): 从该位置开始替换数据.
start(可选):从该位置开始读取数据.
end(可选):到该位置的前一个位置.
[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
[4, 2, 3, 4, 5]
4.find(item,index,arr):返回数组中满足的第一个元素的值
var f = [1,2,3,4];
var f2 = f.find((item) => {
return item > 3
});
console.log(f2);// 4
5.findIndex(item,index,arr):返回数组中满足的第一个元素的下标
var f = [1,2,3,4];
var f2 = f.findIndex((item) => {
return item > 3
});
console.log(f2);// 3
6.fill();用指定元素填充数组
var f = [1,2,3,4];
var f2 = f.fill(4);
console.log(f2);// [4, 4, 4, 4]
好了,今天我们就总结到这里吧