首页 > 编程语言 >JavaScript基础-数组(进阶)

JavaScript基础-数组(进阶)

时间:2023-07-24 15:57:38浏览次数:57  
标签:arr Set console 进阶 JavaScript add let 数组 log

扩展运算符

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博客

标签:arr,Set,console,进阶,JavaScript,add,let,数组,log
From: https://www.cnblogs.com/wwssgg/p/17577433.html

相关文章

  • rodert单排学习redis进阶【青铜】
    redis之青铜image.png[toc]前言声明:参考来源互联网,有任何争议可以留言。站在前人的肩上,我们才能看的更远。本教程纯手打,致力于最实用教程,不需要什么奖励,只希望多多转发支持。欢迎来我公众号,希望可以结识你,也可以催更,微信搜索:JavaPub有任何问题都可以来谈谈![图片上传失......
  • 560. 和为 K 的子数组(前缀和解决子串问题)
    给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的连续子数组的个数。示例1:输入:nums=[1,1,1],k=2输出:2>思路每个元素对应一个“前缀和”遍历数组,根据当前“前缀和”,在map中寻找「与之相减==k」的历史前缀和当前“前缀和”与历史前缀和......
  • javaScript 小知识
    ??运算符只有前面的值是undefined才会执行letstatus=undefined;lettext=status??"暂无"console.log(text)//暂无?.运算符这在有时候处理对象时非常有用,看下面案例,person.name返回undefined然后在调用toString这时肯定会报错,这时使用?.运算符就不会产生错误,?.......
  • 2.1 数组 参考代码
    P5716[深基3.例9]月份天数#include<cstdio>intmain(){intdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};inty,m;scanf("%d%d",&y,&m);if(y%4==0&&y%100!=0||y%400==0)days[1]=......
  • 树状数组
    「观前提醒」「文章仅供学习和参考,如有问题请在评论区提出」目录前言定义基本概念基本原理单点修改分析代码实现区间查询分析代码实现整体代码练手题目小结参考资料前言这也算是我写正儿八经的博客,因为没怎么写过,所以可能有些地方没讲好或者有点啰嗦。但是我也会尽可能......
  • JavaScript复习知识点
    原型在JavaScript中,每个对象都有一个原型(prototype)。原型是一个对象,其他对象可以通过它来继承属性和方法。简单来说,对象通过其原型来共享和访问属性和方法。原型以原型链的形式连接在一起,形成了一个对象和原型之间的关系。当我们访问对象的属性或方法时,JavaScript引擎首先在......
  • 11.数组名和指针(这⾥为指向数组⾸元素的指针)区别
    1intmain()2{3inta[2]={1,2};4int*p=a;5cout<<"a+1"<<a+1<<endl;6cout<<"p+1"<<p+1<<endl;7cout<<"*(a+1)"<<*(a+1......
  • mysql进阶
    1.为什么InnoDB存储引擎选择使用B+tree索引结构?相对于二叉树,层级更少,搜索效率高;对于B-tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低;相对Hash索引,B+tree支持范围匹配及排序操作;......
  • 数组去重方法总结(JavaScript 记录)
    在进行项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后再进行相关的操作,这也是在前端面试中经常出现的问题数组去重的多种方法:利用ES6Set去重利用for嵌套for,然后splice去重利用indexOf去重利用sort()去重利用对象的属性不能相......
  • linux 中 awk数组统计每列、行数据之和及平均值
     001、列[root@PC1test02]#lsa.txt[root@PC1test02]#cata.txt##测试数据362825841382##统计每列数据之和[root@PC1test02]#awk'{for(i=1;i<=NF;......