数组有关的方法
本文为了总结知识点
一:如何创建数组
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
还没有评论,来说两句吧...