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 的实际运用(待更新)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值