数组有关的方法

本文为了总结知识点

一:如何创建数组

1.使用Array构造函数

(1)var arr = new Array();

(2)var arr1 = new Array(20);

(3)var arr2 = new Array('red','green','blue');

2.使用数组字面量表示法

(1)var arr3 = ['red','green','blue'];

  (2)   var arr4 = [];

二:检测数组的方法

Array.isArray()

三:转换方法

(1) valueOf() 

var arr = ['red','green','blue'];

console.log(arr.valueOf()); // 输出数组本身 ['red','green','blue']

(2) toString()

var arr = ['red','green','blue'];

console.log(arr.toString()); // 输出数组的字符串表示 red,green,blue

(3) toLocaleString()

var arr = ['red','green','blue'];

console.log(arr.toLocaleString()); // 输出数组的字符串表示 red,green,blue

(4) join()

var arr = ['red','green','blue'];

console.log(arr.join(" || ")); // 输出数组的字符串表示 red||green||blue

四:栈和队列的方法

(1) push():往数组末尾追加元素 

 var arr = [ 'red', 'green', 'blue' ];

 arr.push('white','black');

 console.log(arr);  // [ 'red', 'green', 'blue', 'white', 'black' ] 

(2) pop():删除数组最后一个元素

var arr = [ 'red', 'green', 'blue' ];

arr.pop(); // [ 'red', 'green' ]

(3)  unshift():往数组开头追加元素

var arr = [ 'red', 'green', 'blue' ];

arr.unshift('white','black');

console.log(arr);  // [ 'white', 'black', 'red', 'green', 'blue' ] 

(4)  shift():删除数组第一个元素

  var arr = [ 'red', 'green', 'blue' ];

  arr.shift(); // [ 'green', 'blue' ]

五:重排序方法

(1)reverse()

var values = [1, 2, 3, 4, 5];

values.reverse();

console.log(values); // [5, 4, 3, 2, 1]

  (2) sort()

var values = [0, 1, 5, 10, 15];

values.sort(compare);

console.log(values);

function compare(value1, value2){

if(value1 < value2)

return -1;

else if (value1 > value2)

return 1;

else

return 0;

}

六:操作方法

(1)concat() 不操作原数组 //deep copy

 var fruits = [ '苹果', '鸭梨', '水蜜桃', '芒果', '火龙果' ];
    //   数组内容复制的技巧
 var re =  fruits.concat(fruits);
 document.write(re);

  (2)slice()不操作原数组 //deep copy

slice()方法会返回子数组,在分割的时候,包含开始,但不包含结束
  var fruits = [ '苹果', '鸭梨', '水蜜桃', '芒果', '火龙果' ];
  var re = fruits.slice(1,2);
  document.write(re); // ['鸭梨']

  (3)splice()

   splice():对数组比较灵活的一种操作方法,操作原数组,对数组的增、删、改
   var fruits = ['苹果','鸭梨','水蜜桃','芒果']; 
   fruits.splice(1,2);   //  从1号位置开始删除,删除2个元素
   fruits.splice(1,2,'葡萄','火龙果','荔枝');  
   document.write(fruits);  //   从1号位置开始删除,删除2个元素,在1号位置添加三个元素

七:位置方法

(1)indexOf()

var arr = ['red','green','blue','white','black'];

var results = arr.indexOf('blue');

console.log(results); // 2

  (2) lastIndexOf()

var arr = ['red','green','blue','white','black'];

var results = arr.lastIndexOf('green');

console.log(results); //3

(3)findIndex()

返回数组中满足测试函数的第一个元素的索引,否则返回-1

const array = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array.findIndex(isLargeNumber));//3

(3)find()

返回数组中满足测试函数的第一个元素,否则返回undefined

const array = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array.find(isLargeNumber));//130

八:迭代方法

(1) every()

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

(2)some()

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var results = numbers.some(function(item, index, array){
    return (item > 2);
})
console.log(results); // true

(3)filter()

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

(4)map()

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var results = numbers.map(function(item, index, array){
    return (item * 2);
})
console.log(results); 

(5)forEach()

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var results = numbers.forEach(function(item, index, array){
    console.log(item);
})

九:归并方法

(1)reduce()

var numbers = [1, 2, 3, 4, 5];
var results = numbers.reduce(function (prev, cur, index, array) {
    return prev + cur;
})
console.log(results); //15

  (2) reduceRight()

var numbers = [1, 2, 3, 4, 5];
var results = numbers.reduceRight(function (prev, cur, index, array) {
    return prev + cur;
})
console.log(results); // 15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值