JavaScript技术ES6 新特性

JS 数组常用方法

2022-05-12  本文已影响0人  生命里那束光

一、JavaScript中创建数组的方式

1.创建空数组,再给数组元素赋值

//创建数组,不定义元素个数
var myCars= new Array();

//给数组元素赋值  可以不按照数组顺序进行赋值
myCars[0]="aodi";
myCars[1]="baoma";
myCars[2]="benchi";

console.log(myCars);//[aodi,baoma,benchi]

2.使用new Array()创建数组

var citys = new Array("杭州", "绍兴", "宁波", "温州");
console.log(citys);//[杭州,绍兴,宁波,温州]

3.使用数组字面量(隐式)

var citys = ["杭州", "绍兴", "宁波", "温州"];
console.log(citys);//[杭州,绍兴,宁波,温州]

4.Array.of创建数组(ES6新增)

Array.of()方法用于将一组值,转换为数组。

Array.of()总是返回参数值组成的数组。如果没有参数,就返回一个空数组。

Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1

5.Array.from创建数组(ES6新增)

Array.from()方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

let arrayLike = {   //类似数组的对象
    0: 'tom', 
    1: '65',
    2: '男',
    3: ['jane','john','Mary'],
    'length': 4
}
//转化为真正的数组
let arr = Array.from(arrayLike)
console.log(arr) // ['tom','65','男',['jane','john','Mary']]

Array.from的三个参数:

Array.from(arrayLike[, mapFn[, thisArg]] )
1 参数一是被转换的对象
2 参数二是一个map函数方法
3 参数三是map里面this的指向

注意:数组中如果不添加元素,那打印出来的元素的值默认就是undefined

二、数组常用方法汇总

JS数组方法 作用 返回值 用法
join 把数组转换成字符串,可以设置连接符 字符串 arr.join("-")
push 数组末尾增加内容 新数组的长度 arr.push(" ")
pop 删除数组最后一项 删除的值 arr.pop( )
shift 删除数组第一项 删除的值 arr.shift(" ")
unshift 数组开头增加内容 新数组的长度 arr.unshift(" ")
sort 数组里的项从小到大排序(比较字符串) 新数组 arr.sort( )
reverse 反转数组项的顺序 新数组 arr.reverse( )
concat() 数组拼接,不改变原来数组 新数组 arr.concat()
slice() 数组截取 新数组 arr.slice( 开始下标 , 结束下标)
splice() 删除、插入和替换 新数组 arr.splice( 2,0,4,6 )
indexOf() 从前往后查找 返回索引(最新) arr.indexof( 5 )
lastIndexOf() 从后往前查找 返回索引(最新) arr.lastIndexOf(5)
forEach() 对数组进行遍历循环 arr.forEach()
map() “映射”数组,对数组元素进行函数调用 新数组 arr.map()
filter() “过滤”数组,返回满足条件的元素 新数组 arr.filter()
every() 数组中每个元素是否都满足条件,逻辑“与” true或false arr.every()
some() 数组中是否存在满足条件的元素,逻辑“或” true或false arr.some()
prototype 查找数组的原型 proty Array.prototype
ES6新增的方法
find() 查找符合条件的元素 元素orubdefined arr.find()
findIndex() 查找符合条件的元素的索引 对应的索引 arr.findIndex()
includes() 判断一个数组是否包含一个指定的值 true或false arr.includes(value)
Array.isArray() 判断一个对象是否为数组 true或false Array.isArray([])
fill() 使用给定值,填充一个数组 新数组 Array(conut).fill(value)

三、js数组常用的方法

1. join()

var arr = [1,2,3];
console.log(arr.join());  // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr);   
// [1, 2, 3(原数组不变)

2. push()和pop()

var arr = ["Lily","lucy","Tom"];
var count = arr.push("Jack","Sean");
console.log(count);   // 5
console.log(arr);   
// ["Lily", "lucy", "Tom", "Jack", "Sean"]
var item = arr.pop();
console.log(item);   // Sean
console.log(arr);   
// ["Lily", "lucy", "Tom", "Jack"]

3. shift() 和 unshift()

var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count);               // 5
console.log(arr);                //["Jack", "Sean", "Lily", "lucy", "Tom"]
var item = arr.shift();
console.log(item);   // Jack
console.log(arr);   
// ["Sean", "Lily","lucy", "Tom"]

4. sort()

var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort());  
// ["a", "b", "c", "d"]

5. reverse()

 var arr = [13, 24, 51, 3];
console.log(arr.reverse());        
 //[3, 51, 24, 13]
console.log(arr);              
 //[3, 51, 24, 13](原数组改变)

6. concat()

//场景1:数组和元素的拼接
var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy);             
//[1, 3, 5, 7, 9, 11, 13]
console.log(arr);               
// [1, 3, 5, 7](原数组未被修改)


//场景2:两个数组的拼接
let arr = [1, 2, 3, 4, 5];
let arr1 = [6, 7, 8, 9];
let arr2 = arr.concat(arr1);
console.log(arr2);
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

7. slice()

var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr);               
//[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy);             
//[3, 5, 7, 9, 11]
console.log(arrCopy2);            
//[3, 5, 7]
console.log(arrCopy3);            
//[3, 5, 7]
console.log(arrCopy4);            
//[5, 7, 9]

8.splice()

var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr);                
//[5, 7, 9, 11]
console.log(arrRemoved);            
//[1, 3]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr);                
// [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2);           // []
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr);                
// [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3);           
//[7]

9.indexOf()和lastIndexOf()

var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5));       
//2
console.log(arr.lastIndexOf(5));    
//5
console.log(arr.indexOf(5,2));      
//2
console.log(arr.lastIndexOf(5,4));   
//2
console.log(arr.indexOf("5"));      
//-1

10. forEach()

var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true

11. map()

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2);        
//[1, 4, 9, 16, 25]

12.filter()

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8;
}); 
console.log(arr2);         
//[1, 4, 7, 8, 9, 10]

13. every()

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
}); 
console.log(arr2);         //true
var arr3 = arr.every(function(x) {
return x < 3;
}); 
console.log(arr3);         // false

14. some()

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
}); 
console.log(arr2);         //true
var arr3 = arr.some(function(x) {
return x < 1;
}); 
console.log(arr3);         // false

15、查找数组的原型

console.log(Array.prototype);

查找数组的原型

四、ES6新增的数组方法

16、find()

    let arr = [{id:1,name:'dee'},{id:2,name:'dee'},{id:3,name:'dee'},
    {id:4,name:'dee'},{id:5,name:'dee'}];
    // let obj = arr.find(function(item){
    //    return item == 3;
    // })
    // console.log(obj);
    // ubdefined
    let obj = arr.find(item => item.id > 1)
    console.log(obj);
    ({id:2,name:'dee'})  

17、findIndex()

    let arr = [1, 2, 3, 4, 5];
    let obj = arr.findIndex(function(item) {
        return item > 6;
    })
    console.log(obj);  // -1

18、includes()

var a = [1,2,3]
console.log(a.includes(1))  // true

19、Array.isArray()方法

Array.isArray([])  // true
Array.isArray({})  // false

20、fill()方法

['a', 'b', 'c'].fill(7)
// [7, 7, 7]

new Array(3).fill(7)
// [7, 7, 7]

上面代码表明,fill方法用于空数组的初始化非常方便。数组中已有的元素,会被全部抹去。

['a', 'b', 'c'].fill(7, 1, 2)
// ['a', 7, 'c']
上一篇下一篇

猜你喜欢

热点阅读