RickN

导航

Javascript数组操作

1.检测数组

if (Array.isArray(value)){
    //对数组执行某些操作
  }

2.栈方法

  (1).push()方法 接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。 

  (2).pop()方法 从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。 

3.队列方法 

  (1).shift()方法 除数组中的第一个项并返回该项,同时将数组长度减 1 。

  (2).unshift()方法 在数组前端添加任意个项并返回新数组的长度。 

4.重排序方法 

  (1).reverse()方法 反转数组项的顺序。 

  (2).sort()方法 将数组排序,配合

function compare(value1, value2){
    return value1 - value2;
  }

value.sort(compare); 

  可以实现升序降序。

5.操作方法

  (1).concat() 方法 基于当前数组中的所有项创建一个新数组。 

var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown

  (2).slice()方法 基于当前数组中的一或多个项创建一个新数组。

var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
alert(colors2); //green,blue,yellow,purple
alert(colors3); //green,blue,yellow

  (3).splice()方法

    01.删除 splice(0,2) 会删除数组中的前两项。 

    02.插入 splice(2,0,"red","green") 会从当前数组的位置 2 开始插入字符串"red""green" 。

    03.替换 splice (2,1,"red","green") 会删除当前数组位置 2 的项,然后再从位置 2 开始插入字符串"red""green"。 

6.位置方法

  (1).indexOf()方法  从数组的开头(位0)开始向后查找。

  (2).lastIndexOf()方法 从数组的末尾开始向前查找。

var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3
alert(numbers.lastIndexOf(4)); //5
alert(numbers.indexOf(4, 4)); //5
alert(numbers.lastIndexOf(4, 4)); //3
var person = { name: "Nicholas" };
var people = [{ name: "Nicholas" }];
var morePeople = [person];
alert(people.indexOf(person)); //-1
alert(morePeople.indexOf(person)); //0

 7.迭代方法

  (1).every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。 

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
  return (item > 2);
});
alert(everyResult); //false

  (2).filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
  return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]

  (3).forEach():对数组中的每一项运行给定函数。这个方法没有返回值。

var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
//执行某些操作
});

  (4).map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
  return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]

  (5).some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true

var someResult = numbers.some(function(item, index, array){
  return (item > 2);
});
alert(someResult); //true

8.归并方法 

  reduce()reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。 

  (1).reduce()方法 从数组的第一项开始,逐个遍历到最后。 

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
    return prev + cur;
});
alert(sum); //15

  (2).reduceRight()方法 从数组的最后一项开始,向前遍历到第一项。

var values = [1,2,3,4,5];
var sum = values.reduceRight(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15

 

posted on 2019-12-04 17:00  RickN  阅读(133)  评论(0)    收藏  举报