JavaScript基础-数组(进阶)

扩展运算符

let arr1 = [1,2],arr2 =[3,4];
let arr3 = arr1.concat(arr2);
let arr4 = [...arr1,...arr2]
console.log(arr4);

concat 连接 然后...展开

let arr1 =[1,2];
let arr2 = [...arr1]
console.log(arr1,arr2);

  把arr1的值传给 arr2,输出[ 1, 2 ] [ 1, 2 ]

如果没有...就是直接把arr1这个数组传进去[ 1, 2 ] [ [ 1, 2 ] ] 不可行;

let str ='hello';
let arr =[...str];
console.log(arr);

  将如果是字符串...就拆分字符串 输出单字符传到数组里 [ 'h', 'e', 'l', 'l', 'o' ]

 

解构

可以将属性或值从数组或对象中取出,赋值给其他变量

let arr =[5,10];
 
let [a,b] =arr;
 
console.log(a,b);

  输出5 10

let a = 5,b =10;
[a,b] = [b,a]
console.log(a,b);

  输出 10 5 交换 a b 的值 且不要创建新的容器。

 

 Map()遍历数组并操作数组的元素,返回新的数组

let arr = [10,11,13,14,15];
let newArr = arr.map(function (item ,index){
    return item *2
})
console.log(newArr);//输出[ 20, 22, 26, 28, 30 ]

  

filter()筛选

let arr = [21,32,43,54,65];
let newArr = arr.filter(function(item ,index){
    return item %2 ===0;
})
console.log(newArr);//[ 32, 54 ]

  

排序

let arr = [8, 9, 8, 6, 5, 99, 5, 4, 82];
for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
        if (arr[i] < arr[j]) { //降序,大于就是升序,需要用双重循环挨个比较,
            let n = null; //声明一个临时变量,用于在比较后进行数组元素的交换
            n = arr[i];
            arr[i] = arr[j];
            arr[j] = n;
        }
    }
}
console.log(arr);

  

冒泡排序

let arr = [10, 20, 55, 33, 9, 6, 4, 2, 4]; //冒泡排序是上一个和下一个进行比较[1]和[1+1],总的比较次数是总长度-1
for (let count = 1; count < arr.length; count++) { //比较次数,从1开始,这个1不是索引号
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] < arr[i + 1]) { //降序,大于就是升序
            let n = null;
            n = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = n
        }
    }
}
console.log(arr);

  

Set()

Set()是ES6 中引入的一种数据结构,他允许存储任何类型的唯一值,无论是原始值或者是对象应用。即Set中的元素是唯一的: let s =new Set();

Set对象方法

由于调用add()方法以后返回的又是一个Set对象,所以我们能连续调用add()方法进行值的添加,这种像链条一样的方式调用方法被称为链式调用

let s = new Set();
 
s.add(1).add(2).add(3).add(9)
 
console.log(s);

  

链式调用

链式调用在未来应用到dom中非常常见

let arr=['a','b','c'];
 
let newArr = arr.reverse();
 
let str = newArr.join(',');
 
console.log(str);
 
等同于===
 
let str = arr.reverse.join(',');
 
非常方便

  

add(value)

添加数据并返回新的set结构

除了可以使用add()添加,也可以在创建同时添加

建立 set对象时传入数组,数组每一项都成为set对象的一个元素

let s = new Set([1,2,1])
console.log(s);

  调用add()时传入数组,整个数组时作为set对象的一个元素

let s = new Set();
 
s.add([1,2,3]);
 
console.log(s);
 
console.log(s.size);

  

delete(value)

删除数据,会返回布尔值

has(value):查看是否存在,返回布尔值,做全等比较
 
let s = new Set([1,2,3]);
 
console.log(s.has(1));
 
console.log(s.has('1'));
 
clear():清空
 
let s = new Set([1,2,3]);
 
s.clear;
 
console.log(s);

  Set 的实际运用(待更新)

 

转自:(2条消息) JavaScript基础-数组(进阶)_js [...arr]_世阿弥的博客-CSDN博客

posted @ 2023-07-24 15:46  信铁寒胜  阅读(19)  评论(0)    收藏  举报