es - 数组方法大全

es3数组常用方法
es5数组常用方法
es6数组常用方法
es7数组常用方法

**es3数组常用方法**
  1. push():添加 - 数组末尾
let a = [1,2,3];
a.push(4);
console.log(a); [1,2,3,4]
  1. 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

**es5数组常用方法**

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]
**es6数组常用方法**

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]
includes():与include类似

好了,今天我们就总结到这里吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值