数组是值的有序集合。
数组原型Array.prototype.concat() [ES3]
(concat()方法合并两个或两个以上数组。此方法不更改现有数组,而是返回新数组)
语法:
var new_array = old_array.concat(value1[,value2[, ...[,valueN]]])
实例:
var arr1=['a','b','c'];
var arr2=['d','e','f'];
var arr3=arr1.concat(arr2);
// arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]
Array.prototype.copyWithin() [ES6]
(copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。target(必需):从该位置开始替换数据。start(可选):从该位置开始读取数据,默认为0。如果为负值,表示倒数。end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。)
( copyWithin()方法是数组的浅拷贝部分, 而数组的大小没有改变。)
语法:
arr.copyWithin(target)
arr.copyWithin(target,start)
arr.copyWithin(target,start,end)
实例:
['alpha','bravo','charlie','delta'].copyWithin(2,0);
// results in ["alpha", "bravo", "alpha", "bravo"]
Array.prototype.entries(). [ES6]
(entries()方法返回一个新数组的迭代器对象包含数组中的每个索引的键/值对。)
语法:
a.entries()
实例:
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 a = ['a','b','c'];
var iterator = a.entries();
for(lete of iterator){
console.log(e);
}// [0, 'a']// [1, 'b']// [2, 'c']
Array.prototype.every() [ES5]
(every方法是数组的逻辑判定:对数组元素应用指定对函数进行判定,返回true 或 false)
语法:
arr.every(callback[,thisArg])
实例:
functionisBigEnough(element,index,array){
return element >= 10;
}
[12,5,8,130,44].every(isBigEnough);// false
[12,54,18,130,44].every(isBigEnough);// true
[1,2,3,4,5,6,7,8].every(function(x){ x < 10; } ) //true 所有值<10
Array.prototype.fill() [ES6]
(fill()方法填充数组中的所有从一开始指数结束指标与静态值的元素)
语法:
arr.fill(value)
arr.fill(value,start = 0)
arr.fill(value,start = 0,end = this.length)
(value 值是必须的;start 开始位置 ,可选、默认值为;end结束位置,可选、默认值为数组的length)
实例:
varnumbers=[1,2,3]
numbers.fill(1);
[1,2,3].fill(4);// [4, 4, 4]
[1,2,3].fill(4,1);// [1, 4, 4]
[1,2,3].fill(4,1,2);// [1, 4, 3]
[1,2,3].fill(4,1,1);// [1, 2, 3]
[1,2,3].fill(4,-3,-2);// [4, 2, 3]
[1,2,3].fill(4,NaN,NaN);// [1, 2, 3]
Array(3).fill(4);// [4, 4, 4]
[].fill.call({length:3},4);// {0: 4, 1: 4, 2: 4, length: 3}
Array.prototype.filter() [ES5]
(filter()方法返回的是数组的一个子集<也是一个数组,新数组>,传递的函数是用来逻辑判定的)
语法:
var newArray = arr.filter(callback[,thisArg])
( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)
实例:
var words = ["spray","limit","elite","exuberant","destruction","present"];
var longWords = words.filter(function(word){return word.length > 6;})
// Filtered array longWords is ["exuberant", "destruction", "present"]
Array.prototype.find() [ES6]
(find() 方法返回符合规定的函数的数组的第一个元素的值。否则返回 undefinded)
语法:
arr.find(callback[,thisArg])
( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)
实例:
function isBigEnough(element){
returnelement>=15;
}
[12,5,8,130,44].find(isBigEnough); // 130
function isPrime(element,index,array){
var start=2;
while(start<=Math.sqrt(element)){
if(element%start++<1){
returnfalse;
}
}
return element>1;
}
console.log([4,6,8,12].find(isPrime)); // undefined, not found
console.log([4,5,8,12].find(isPrime)); // 5
Array.prototype.findIndex() [ES6]
(findIndex()方法和find()很相似,findIndex(0) 的返回值是数组的索引,返回满足条件的数组的第一个元素的索引。否则返回 -1)
语法:
arr.findIndex(callback[,thisArg])
( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)
实例:
function isBigEnough(element){
return element >= 15;
}
[12,5,8,130,44].findIndex(isBigEnough);
// index of 4th element in the Array is returned,
// so this will result in '3'
functionis Prime(element,index,array){
var start = 2;
while(start <= Math.sqrt(element)) {
if(element%start++<1){
return false;
}
}
return element>1;
}
console.log([4,6,8,12].findIndex(isPrime)); // -1, not found
console.log([4,6,7,12].findIndex(isPrime)); // 2
Array.prototype.forEach() [ES5]
(foreach()方法用来遍历数组中的每个元素)
语法:
arr.forEach(functioncallback(currentValue, index, array) {
//your iterator
}[,thisArg]);
(currentValue :数组中正在处理的当前元素的值。index:数组中正在处理的当前元素的索引。 array:当前数组。thisArg:回调执行时,使用此值(即referenceobject))
实例:
vara=['a','b','c'];
a.forEach(function(element){
console.log(element);
});
//a// b// c
(其实数组的遍历有很多方法 for...of.. 、for...in.. 等都可以)
Array.prototype.includes() [ES7]
(includes()判定数组包含某元素,返回true或false适当。)
语法:
arr.includes(searchElement)
arr.includes(searchElement,fromIndex)
(searchElement:搜索的元素,fromIndex:开始搜索元素的索引,从该位置开始搜索)
实例:
[1,2,3].includes(2);// true
[1,2,3].includes(4);// false
[1,2,3].includes(3,3);// false
[1,2,3].includes(3,-1);// true
[1,2,NaN].includes(NaN);// true
**以上是javascript数组的简单操作,具体以MDN为标准
网友评论