数组的一些操作

首先就是很常用的es6 数组去重

let arr1 =[1,2,3,4,1,3,5]
let setArr1 = new Set(arr1)//arr1去重
let newArry = Array.from(setArr1)//结果
//newArry=[1,2,3,4,5]

set 还有几种方法

add(value)//添加某个值,返回Set结构本身。
delete(value)//删除某个值,返回一个布尔值,表示删除是否成功。
has(value)//返回一个布尔值,表示该值是否为Set的成员。
clear()//清除所有成员,没有返回值

数组几个排序的方法

//array.sort()方法用于对数组的元素进行排序,并返回原数组
[1, 9, 3].sort((a, b) => {
  return a-b; // 从小到大排序
});
// [1, 3, 9]
//array.reverse()方法将数组中元素的位置颠倒,在原数组上操作,然后返回原数组
let arr = [1,2,3,4,5]
console.log(arr.reverse())    // [5,4,3,2,1]
console.log(arr)    // [5,4,3,2,1]

数组的sort()和reverse()方法都对原数组进行了修改,返回值是经过排序之后的数组。 

查找元素在数组中的位置方法或者有无

[1, 9, 3, 4, 9].indexOf(9); // 1  返回某个指定的字符串值在字符串中首次出现的位置
[1, 9, 3, 4, 9].lastIndexOf(9); // 4 返回一个指定的字符串值最后出现的位置
//这两个方法都返回查找的项在数组中的位置,在没找到的情况下返回-1


[1, 5, 10, 15].findIndex(function(value, index, arr) {
  return value > 9;
}) // 2
//返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1


//includes(searchElement[, fromIndex = 0])方法返回一个布尔值
//表示某个数组是否包含给定的值。
//这个方法接受两个参数:searchElement:要查找的元素;fromIndex:开始查找的索引位置。
[1, 2, 3].includes(2)     // true
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true

数组的截取

//第一种 slice
[1,2,3,4,5,6].slice(1,4); // [2,3,4]   截取1到4下标的代码 不过注意不包括结尾4  所以截取至结尾就可以用arry.length 来做

//还有一种是过滤方法 filter
[1,2,3,4,5,6].filter((e,i)=>{
    return 0<i&&i<4
})  // [2,3,4] 自由判断

数组的过滤

//array.find()找出第一个符合条件的数组元素。
//它的参数是一个回调函数,所有数组成员依次执行该回调函数
//直到找出第一个返回值为true的成员,然后返回该成员。
//如果没有符合条件的成员,则返回undefined
[1, 4, -5, 10].find((n) => n < 0)
// -5
//find()方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
[1, 5, 10, 15].find(function(value, index, arr) {
  return value > 9;
}) // 10
//array.filter(callback, thisArg)方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。
// callback定义如下,三个参数: element:当前元素值;index:当前元素下标; array:当前数组
function callback(element, index, array) {
  // callback函数必须返回true或者false,返回true保留该元素,false则不保留。
  return true || false;
}

const filtered = [1, 2, 3].filter(element => element > 1);
// filtered: [2, 3];
//array.every(callback[, thisArg])方法检测数组中的每一个元素是否都通过了callback测试
//全部通过返回true,否则返回false。

// callback定义如下: element:当前元素值;index:当前元素下标; array:当前数组
function callback(element, index, array) {
  // callback函数必须返回true或者false告知every是否通过测试
  return true || false;
}

let a = [1, 2, 3, 4, 5];
let b = a.every((item) => {
    return item > 0;
});
let c = a.every((item) => {
    return item > 1;
});
console.log(b); // true
console.log(c); // false
//array.some(callback[, thisArg])判断数组中是否包含可以通过callback测试的元素
//与every不同的是,这里只要某一个元素通过测试,即返回true。callback定义同上。

[2, 5, 8, 1, 4].some(item => item > 6);
// true
//array.map(callback[, thisArg])方法返回一个由原数组中的每个元素调用callback函数后的返回值组成的新数组。

let a = [1, 2, 3, 4, 5];

let b = a.filter((item) => {
    return item > 3;
});
console.log(b); // [4 ,5]

let bb = [];
a.map((item) => {
    if (item > 3) {
        bb.push(item);
    }
});
console.log(bb);    // [4, 5]

let bbb = a.map((item) => {
    return item + 1;
});
console.log(bbb);   // [2, 3, 4, 5, 6]
//array.forEach(callbak)为数组的每个元素执行对应的方法

// callback定义如下: element:当前元素值;index:当前元素下标; array:当前数组

let a = [1, 2, 3, 4, 5];

let b = [];
a.forEach((item) => {
    b.push(item + 1);
});
console.log(b); // [2,3,4,5,6]
//遍历数组的方法:entries()、values()、keys()
//这三个方法都是返回一个遍历器对象,可用for...of循环遍历,
//唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历。

for(let item of ['a','b'].keys()){
    consloe.log(item);
    //0
    //1
}
for(let item of ['a','b'].values()){
    consloe.log(item);
    //'a'
    //'b'
}
let arr4 = [0,1];
for(let item of arr4.entries()){
    console.log(item);  
    //  [0, 0]
    //  [1, 1]
}
for(let [index,item] of arr4.entries()){
    console.log(index+':'+item);
    //0:0
    //1:1
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值