concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:array1.concat(array2,array3,...,arrayX)
例如:
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
console.log(children); // Cecilie,Lone,Emil,Tobias,Linus,Robin
every()方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
语法:array.every(function(currentValue,index,arr), thisValue)
function(currentValue, index,arr) :必须。函数,数组中的每个元素都会执行这个函数例如:
<p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button>
<p>是否所有年龄都符号条件? <span id="demo"></span></p>
<script>
var ages = [32, 33, 12, 40];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;}
function myFunction() {
document.getElementById("demo").innerHTML = ages.every(checkAdult);
}
</script>
fill()方法用于将一个固定值替换数组的元素。
语法:array.fill(value, start, end)
value:必需。填充的值。start:可选。开始填充位置。end:可选。停止填充位置 (默认为array.length)例如:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob", 2, 4);
console.log(fruits); // ["Banana", "Orange", "Runoob", "Runoob"]
filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
语法:array.filter(function(currentValue,index,arr), thisValue)
function(currentValue, index,arr):必须。函数,数组中的每个元素都会执行这个函数currentValue:必需。当前元素index:可选。当前元素的索引值。arr:可选。当前元素所属的数组对象。例如:
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
结果为:32,33,40
forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:array.forEach(function(currentValue, index, arr), thisValue)
function(currentValue, index,arr):必须。函数,数组中的每个元素都会执行这个函数currentValue:必需。当前元素index:可选。当前元素的索引值。arr:可选。当前元素所属的数组对象。例如:
var numbers = [4, 9, 16, 25];
var sum = 0;
numbers.forEach(myFunction);
function myFunction(item, index) {
sum += item;
}
console.log(sum); // 54
join()方法用于把数组中的所有元素转换一个字符串。元素是通过指定的分隔符进行分隔的。
例如1:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
console.log(energy); // Banana,Orange,Apple,Mango
例如2:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
console.log(energy);// Banana and Orange and Apple and Mango
isArray()方法用于判断一个对象是否为数组。如果对象是数组返回 true,否则返回 false。
语法:Array.isArray(obj)
例如:
var foods = ["banana", "apple"];
Array.isArray(foods);
map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
因为map生成一个新数组,当你不打算使用返回的新数组却使用map是违背设计初衷的,请用forEach或者for-of替代。
语法:array.map(function(currentValue,index,arr), thisValue)
callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。
map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)
例如1:
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]例如2:下面代码展示了如何去遍历用 querySelectorAll 得到的动态对象集合。在这里,我们获得了文档里所有选中的选项,并将其打印:
var elems = document.querySelectorAll('select option:checked');
var values = Array.prototype.map.call(elems, function(obj) {
return obj.value;
});pop()方法用于删除数组的最后一个元素并返回删除的元素。
注意:此方法改变数组的长度!
例如:
let myFish = ["angel", "clown", "mandarin", "surgeon"];
let popped = myFish.pop();
console.log(myFish);
// ["angel", "clown", "mandarin"]
console.log(popped);
// surgeonshift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
注意: 此方法改变数组的长度!
语法:array.shift()
例如:
const array1 = [1, 2, 3];
const firstElement = array1.shift();
console.log(array1);
// [2, 3]
console.log(firstElement);
// 1
slice()方法返回一个新的数组对象,这一对象是一个由begin和end决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
语法:array.slice(start,end)
begin:可选。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。如果省略 begin,则 slice 从索引 0 开始。
end: 可选。提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。
例如:
slice(1,4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。
some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
语法:array.some(function(currentValue,index,arr),thisValue)
例如:
const array = [1, 2, 3, 4, 5]; const even = (element) => element % 2 === 0;
console.log(array.some(even)); // true
sort()方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
语法:array.sort(sortfunction)
例如:
var points = [40,100,1,5,25,10];
points.sort(); // [1, 10, 100, 25, 40, 5]
points.sort(function(a,b){return a-b}); // [1, 5, 10, 25, 40, 100]
splice()方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
语法:array.splice(index,howmany,item1,.....,itemX)
index:必需。规定从何处添加/删除元素。howmany:可选。规定应该删除多少元素。必须是数字,但可以是 "0"。item1, ...,itemX:可选。要添加到数组的新元素例如1:从第 2 位开始删除 0 个元素,插入“drum” 和 "guitar"
var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(2, 0, "drum");
// 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"]
// 被删除的元素: [], 没有元素被删除例如2:从第 3 位开始删除 1 个元素
var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);
// 运算后的 myFish: ["angel", "clown", "drum", "sturgeon"]
// 被删除的元素: ["mandarin"]例如3:从第 0 位开始删除 2 个元素,插入"parrot"、"anemone"和"blue"
var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// 运算后的 myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// 被删除的元素: ["angel", "clown"]unshift()方法可向数组的开头添加一个或更多元素,并返回新的长度。
注意: 该方法将改变数组的数目。
语法: array.unshift(item1,item2, ...itemX)
例如:
let arr = [4,5,6];
arr.unshift(1,2,3);
console.log(arr); // [1, 2, 3, 4, 5, 6]
arr = [4,5,6]; // 重置数组
arr.unshift(1);
arr.unshift(2);
arr.unshift(3);
console.log(arr); // [3, 2, 1, 4, 5, 6]toString()方法可把数组转换为字符串,并返回结果。
注意: 数组中的元素之间用逗号分隔。
语法:array.toString()
例如:
const array1 = [1, 2, 'a', '1a'];
console.log(array1.toString());
// expected output: "1,2,a,1a"