js中数组的各种方法

1.数组的length属性

Array对象当中,存在一个length属性,能够用来查看数组的长度。

例如:

var arr = [10,20,30,40]; console.log(arr.length);// 4 


通常情况下,我们可以通过将length属性值设置为0,来让数组清空。

例如:

var arr = [10,20,30,40]; arr.length = 0; console.log(arr); // [] 数组被清空 

用length的增删改
增:直接选定,哪里没有增哪里
删:只能删后面不能删前面
改:选定哪个改哪个
查:选定哪个查哪个

2.数组当中其他的操作方法

首先来说下push()方法。通过这个方法,我们能够将一个或者多个元素添加到数组的末尾,并且返回数组的新长度。
// 创建一个数组 var arr1 = ['张三','李四'];
// 通过Push方法向数组中添加元素 arr1.push("王五");
// 检查数组内容 console.log(arr1); // [ '张三', '李四', '王五' ]
// 尝试添加多个内容 arr1.push("赵六","刘七");
// 打印数组元素 console.log(arr1);
// [ '张三', '李四', '王五', '赵六', '刘七' ]
// 创建一个新的数组 var arr2 = [1,2,3,4];
// 尝试将arr2添加到arr1 arr1.push(arr2);
// 打印arr1; console.log(arr1);
// [ '张三', '李四', '王五', '赵六', '刘七', [ 1, 2, 3, 4 ] ]
// 向arr1中再次添加数据并且查看push方法的返回值 console.log(arr1.push('hello,world')); // 7

pop()方法能够从数组中删除最后一个元素,并且返回该元素的值。此方法更改数组的长度。

var plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop());
// expected output: "tomato"
console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"]
plants.pop();
console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage"]

上面我们演示了pop方法删除数组的最后一个元素,但是在使用pop方法的时候,我们需要注意,该方法通过length属性来确定最后一个元素的位置,
如果不包含length属性或者length属性不能够被转换成一个数值,那么就会将length属性设置为0,并且返回undefined。

同时,你在一个空数组上调用pop方法,也会返回undefined。

 

unshift()方法能够将一个或者多个元素添加到数组的开头,并且返回数组的新长度。

var array1 = [1, 2, 3];

console.log(array1.unshift(4, 5)); // expected output: 5 console.log(array1); // expected output: Array [4, 5, 1, 2, 3]


shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

var array1 = [1, 2, 3];

var firstElement = array1.shift(); console.log(array1); // expected output: Array [2, 3] console.log(firstElement); // expected output: 1

shift 方法移除索引为 0 的元素(即第一个元素),并返回被移除的元素,其他元素的索引值随之减 1。如果 length 属性的值为 0 (长度为 0),则返回 undefined。

shift 方法并不局限于数组:这个方法能够通过 call 或 apply 方法作用于类似数组的对象上。但是对于没有 length 属性(从0开始的一系列连续的数字属性的最后一个)的对象,调用该方法可能没有任何意义。

 toString() 把数组转换为数组值(逗号分隔)的字符串    直接转为字符串,并返回

join() 方法也可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符
var fruits = ["Banana", "Orange","Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * ");
Banana * Orange * Apple * Mango

concat() 方法通过合并(连接)现有数组来创建一个新数组:concat() 方法不会更改现有数组。它总是返回一个新数组。
concat() 方法可以使用任意数量的数组参数:var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3); // 将arr1、arr2 与 arr3 连接在一起

concat() 方法也可以将值作为参数:var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);

arr.splice(m,n,“”)  --   替换数组指定位置的值,不赋值则为删除该位数值;       

m代表索引值   

n插入替换几个(为0则代表插入)

“”代表替换或者插入的值  可以为多个 

删除指定位置,并替换,返回删除的数据

arr.slice(m,n)   --   截取       从m到n的前一个    若其中值为一个则代表从m到最后;

arr.sort(函数) 默认按字符从小到大排序;(function(a,b){  return  a-b或者b-a; })即可换为数值排序;

indexOf(value,start);

用于返回某个数组或者字符串中规定字符或者字符串的位置;

查询并返回数据的索引

value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

lastIndexOf() 反向查询并返回数据的索引

3.ES5新增的数组方法

 循环,遍历数组 

forEach(callback); 

参数callback为回调函数,会遍历数组所有的项,回调函数接受三个参数,分别为value,index,self;forEach没有返回值

 map(callback);

同forEach,同时回调函数返回数据,组成新数组由map返回;

filter(callback);

同forEach,同时回调函数返回布尔值,为true的数据组成新数组由filter返回   

arr.every(callback)

判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true 。   

arr.some(callback) 

判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。 

arr.reduce()
功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。
参数:reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。
reduce(callback,initial);callback默认有四个参数,分别为prev,now,index,self。
callback返回的任何值都会作为下一次执行的第一个参数。
如果initial参数被省略,那么第一次迭代发生在数组的第二项上,因此callback的第一个参数是数组的第一项,第二个参数就是数组的第二项。

arr.reduceRight()
功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,然后构建一个最终返回的值。
参数:同reduce。
demo:同reduce

             

猜你喜欢

转载自www.cnblogs.com/peihang/p/11442205.html
今日推荐