JavaScript中的数组常用方法总结

数据类型

基本:number null undefined string boolean symbol
复杂:object

数据结构

计算机存储、组织数据的一种方式
数组:把数据有序的集合在一起
数组中每一个值叫做 item 元素,每个元组在数组中都有唯一的位置,位置用数字表示叫下标 || 索引 index

创建数组

  1. 字面量:let arr = []
  2. 构造函数:let arr = new Array()
    typeof arr // object

数组赋值

  1. arr[index] = value arr[0] = “zhangsan”;
  2. arr[tiem1,item2,item3,…]

数组长度

arr.length

查看(访问)数组元素

arr[index]

简单值和复杂值区别

简单值存储在栈区,值比值
复杂值存储在堆区,址比址

let arr1 = [1,2,3];
let arr2 = arr1;
arr2[0] = "heihei";
console.log(arr1);    //heihei 2 3
console.log(arr2);    //heihei 2 3

解构 es6

将复杂数据类型的值拆解成简单数据类型
保持 = 左右两边数据结构相同

let arr = [1,2,3];
let [a,b,c] = arr;
console.log(a,b,c);
//如果想跳过某个值
let [a, ,c] = arr;
console.log(a,c);

遍历数组

有()的叫方法,有[ ]叫属性

  1. for
let arr = ["a", "B",3,"zhangsan",true,undefined];
for(let i =0;i< arr.length;i++){
    console.log(arr[i]);
}
//针对大量数据时的循环效率更高的写法
for(let i = 0, j = arr.length; i < j; i++){
    console.log(arr[i]);
}
  1. for of (es6新增)
let arr = ["a", "B",3,"zhangsan",true,undefined];
for(let item of arr){
    console.log(item);
}
  1. for in 用在遍历对象
let arr = ["a", "B",3,"zhangsan",true,undefined];
for (let index in arr){
    console.log(index);
}
  1. forEach(callback回调函数)
let arr = ["a", "B",3,"zhangsan",true,undefined];
arr.forEach(function (item, index){
            console.log(`第${index}位的是${item}`);
});

多维数组

数组里嵌套了数组 [ [ ] ] 一般就2维数组多,不会再深入

let arr = ["a", ["zhangsan", "lisi"], [1, 2, 3]];
console.log(arr[1] [0]);   //zhangsan

数组的操作方法

  1. push( item1, item2…) 在数组末尾添加
  2. pop( ) 删除数组末尾
  3. shift( ) 删除数组首位
  4. unshift( ) 在数组首位添加
  5. slice(startIndex,endIndex) 截取,startIndex 开始截取到 endIndex -1
  6. splice( startIndex, deleteCount, item1, item2…) 新增 删除 修改(替换)

反转数组

arr.reverse()

let arr = ["a", "b", "c"];
let result = arr.reverse();
console.log(result);      //"c","b","a"
console.log(arr);        //"c","b","a"

排序数组

arr.sort()

let arr = [3,2,5,11,8];
arr.sort((a,b) => a - b);   //升序
arr.sort((a,b) => b - a);   //降序

连接数组

arr.concat()

let arr1 = ["a","b","c"];
let arr2 = [1,2,3];
let arr3 = arr1.concat(arr2);
console.log(arr3);       //[`a`,`b`,`c`,1,2,3]

查找数组下标

arr.index0f(value) arr.lastIndex0f(value)

let arr = ["a","b","c","a"."b","c"];
console.log(arr.index0f("a"));       //0
console.log(arr.lastIndex0f("a"));   //3
console.log(arr.index0f("不存在的值"))    //-1

数组转字符串

str.split(“分隔符”) 并且不包含该分隔符

let str = "helloworld";
let result = str.split("o");
console.log(result);      //["hell","w","rld"]


let result = str.split("");
console.log(result);   //["h","e","l","l","o","w","o","r","l","d]

字符串转数组

arr.join(“分隔符”)

let arr = ["a","b","c","A","B","C"];
let result = arr.join("-");
console.log(result);     //a-b-c-A-B-C

查找数组内容

arr.includes(value) 返回Boolean

let arr = ["a","b","c","A","B","C"];
console.log(arr.includes("a"));    //true
console.log(arr.includes("z"));    //false

遍历操作产生新数组

arr.map(function(){…}) 遍历同时操作,返回新数组

let arr = [1,2,3];
let result = arr.map(function(item){
    return item*2;
});
console.log(arr);          //[1,2,3]
console.log(result);       //[2,4,6]

过滤筛选数组

arr.filter(function(){…}) 返回条件为 true 的 item 不会留下undefined

let arr = [1,2,3,4,5,6];
let result = arr.filter(function(item){
    return item % 2 == 0;
});
console.log(arr);         //[1,2,3,4,5,6]
console.log(result);      //[2,4,6]

-------面试题--------
let arr = [0,1,2];
arr[5] = 5;      //[0,1,2,un,un,5]
let result = arr.filter(function(item){
    return item == undefined;
});
console.log(result);    //[]    返回条件为 true 的 item    不会留下undefined

判断数组中每个或一些元素是否满足条件

arr.every() arr.some() 返回Boolean

let arr = [1,2,3,4,5,6];
let result = arr.every(function(item){
    return item % 2 == 0;    //false
});
console.log(result);
let result = arr.some(function(item){
    return item % 2 == 0;
});
console.log(result);    //true

扩展运算符

let arr1 = ["a","b","c"];
let arr2 = [1,2,3];
let arr3 = [...arr1,...arr2];
console.log(arr3);    //[`a`,`b`,`c`,1,2,3]

去重

new Set() ES6 新增数据结构

  1. set中查看数组长度的命令为 .size
  2. add(value) 不会包含重复的值,不做数据类型转换
  3. 链式调用
let s = new Set(arr);
console.log(s);

s.add(4).add(4).add(4).add("4");   //链式调用

arr = [...s];
console.log(arr);    //返回去重后的数组

let tempArr = [];
for(let item of s){
    tempArr.push(item);
}
console.log(tempArr);    //返回去重后的数组

Map 映射

  1. 区别arr.map()
  2. let m = new Map () 与对象相似,键可以是任意数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值