JS 数组(Arrey)属性以及方法详解

好久的没写文章了,有点愧疚啊….(面壁反省中…)。感觉不论写的水平如何,还是先要把自己写文章的习惯养成才行。文学能力略差,各位大佬勿喷.
数组创建

var arr = new Array("a","b","c");

或者

var arr = new Array(10);
//创建一个长度为10  的空数组

或者

var arr = ["a","b","c"]

目前没发现这两种方式有啥区别,如有大神知道,欢迎补充。
创建好访问就可以通过数组下标访问了,稍微有点基础的同学基本都知道,就不多BB了。
遍历数组

var arr = ["a","b","c"];
arr.forEach(function(item,index){
    console.log(item,index)
})

或者

var al = arr.length;
for(var a=0;a<al;a++){
    console.log(arr[a]);
}

两种方式可以通过自己代码当时的逻辑进行选择,各有各的优点吧。
数组元素添加

var arr = ["a","b","c"];

添加到最后面

arr.push("d");    // ["a","b","c","d"]

添加到最前面

arr.unshift("x")  // ["x","a","b","c"];

数组元素的删除以及数组的切分

var arr = ["a","b","c","d","e","f"];

删除数组最后一项

arr.pop();   // ["a","b","c","d","e"]

删除数组第一项

arr.shift();  // ["b","c","d","e","f"]

截取数组的一部分

// 截取数组的某一部分,原数组变成截取后剩余的数组,返回值为截取的部分
arr.splice(1,4) // ["b","c","d","e"]  arr=> ["a","f"]
// 第一个参数:1  指要截取的开始位置(下标)
// 第二个参数:4  指要截取的长度

获取数组的一部分

// 原数组不变,返回值为需要的数组
arr.slice(1,4)    // ["b","c","d"] arr不变
// 第一个参数:1   指要获取数组的开始位置(下标)
// 第二个参数:4    指要获取数组的结束位置(下标)

复制一个数组

var new_arr = arr.slice()    
//也可以通过转换字符串的方式 ,看个人喜好了....
var new_arr = arr.copyWithin()
// 这个方法并不常用,而且不是深度复制,当你改变new_arr后arr也会随着改变

获取数组某一元素下标

arr.indexOf("b")     // 1

获取数组长度

arr.length            // 6

填充数组

arr.fill("x",2,5)    //[ 'a', 'b', 'x', 'x', 'x', 'f' ]
// 第一个参数:"x" 要填充的元素值
// 第二个参数为要填充的开始位置,第三个为要填充的结束位置(下标值)

颠倒数组的顺序

arr.reverse();     // [ 'f', 'e', 'd', 'c', 'b', 'a' ]

数组排序

arr.sort()        // ["a","b","c","d","e","f"]
// 默认按首字母进行排序
// 方法接受一个function参数可以自己定义安什么排序,function返回1或者-1

合并两个数组

var arr1 = ["a","b","c"] var arr2 = [1,2,3]
var new_arr = arr1.concat(arr2) // [ 'a', 'b', 'c', 1, 2, 3 ]
// 合并以后返回的是一个全新的数组改变原有的arr1或者arr2不会影响new_arr

判断数组是否包含某个元素

var arr. includes("b")    // true
// 后面还有一个参数 可以指定查找的开始位置
// 这个方法并不常用而且存在兼容性问题

用一个字符串连接数组元素

arr.join("-")    // 'a-b-c-d-e-f'
// 常用这个方法用来吧数组转为字符串 参数可以为空或者空字符串

数组转为字符串

arr.toString()    //'a,b,c,d,e,f'
arr.toLocaleString()    //'a,b,c,d,e,f'

数组迭代器

var a = ['a', 'b', 'c'];
var iterator = a.entries();
console.log(iterator.next().value); // [0, 'a']
console.log(iterator.next().value); // [1, 'b']
console.log(iterator.next().value); // [2, 'c']

var arr = ['a', , 'c'];
var sparseKeys = Object.keys(arr);
var denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys);  // [0, 1, 2]
// 迭代器平时不怎么常用,但是在某些关键地方有时候还是会给我们带来很大的帮助的。

以上大概就是js中数组的一些常见的属性及方法了,如有遗漏欢迎各位大神及时指出补充。

    原文作者:流年飞雪
    原文地址: https://segmentfault.com/a/1190000014483524
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞