1.數(shù)組合并
考慮如下場(chǎng)景:有多個(gè)數(shù)組,需要合并起來成為一個(gè)數(shù)組件蚕。我們可以迭代各個(gè)數(shù)組猪勇,然后把每個(gè)元素加入最終的數(shù)組溜族。JavaScript已經(jīng)給我們提供了解決方法,叫做concat方法挤悉。
const zero = 0;
const positiveNumbers = [1,2,3];
const negativeNumbers = [-3,-2,-1];
let numbers = negativeNumbers.concat(zero,positiveNumbers);
console.log(numbers); // -3, -2, -1, 0, 1, 2, 3
concat方法可以向一個(gè)數(shù)組傳遞數(shù)組渐裸、對(duì)象或是元素。數(shù)組會(huì)按照該方法傳入的參數(shù)順序連接指定數(shù)組。在這個(gè)例子里昏鹃,zero將被合并到nagativeNumbers中尚氛,然后positiveNumbers繼續(xù)被合并。最后輸出的結(jié)果是 : -3, -2, -1, 0, 1, 2, 3
2.迭代器函數(shù)
有時(shí)我們需要迭代數(shù)組中的元素洞渤。我們也可以用for語句來完成怠褐。
JavaScript內(nèi)置了許多數(shù)組可用的迭代方法。對(duì)于本節(jié)的例子您宪,我們需要一個(gè)數(shù)組和一個(gè)函數(shù):假設(shè)數(shù)組中的值是從1到15奈懒;如果數(shù)組里的元素可以被2整除(偶數(shù)),函數(shù)就返回true,否則返回false.
function isEven(x){
// 如果x是2的倍數(shù)宪巨,就返回true.
console.log(x);
return x % 2 === 0 ? true : false;
}
return(x % 2 === 0) ? true : false 也可以寫成 return ( x % 2 === 0)
為了簡化代碼磷杏,我們可以使用箭頭函數(shù)來改寫isEven函數(shù)。
const isEven = x => x % 2 === 0;
2.1用every方法迭代
我們要嘗試的第一個(gè)方法是every捏卓。every方法會(huì)迭代數(shù)組中的每個(gè)元素极祸,直到返回false.
number.every(isEven);
在這個(gè)例子里,數(shù)組number的第一個(gè)元素是1怠晴,它不是2的倍數(shù)(1是奇數(shù))遥金,因此isEven函數(shù)返回false,然后every執(zhí)行結(jié)束。
every()方法蒜田,針對(duì)數(shù)組中的每一個(gè)元素進(jìn)行比對(duì)稿械,只要有一個(gè)元素比對(duì)結(jié)果為false則返回false,反之要所有的元素比對(duì)結(jié)果為true才為true
var a = [1,2,3,4,5,6];
var b = a.every(function(x){
return x < 8;
});
var c = a.every(function(x){
return x < 5;
})
console.log(b); //這里返回true
console.log(c); //這里返回false
2.2用some方法迭代
some()方法冲粤,同樣是針對(duì)數(shù)組中的每一個(gè)元素美莫,但是這個(gè)方法是,只要有一個(gè)元素比對(duì)結(jié)果為true梯捕,返回結(jié)果就為true厢呵,反之要所有的元素比對(duì)結(jié)果為false才為false
var a = [1,2,3,4,5,6]
var b = a.some(function(x){
return x > 10;
})
var c = a.some(function(x){
return x > 5;
})
console.log(b) //這里返回false
console.log(c) //這里返回true
https://blog.csdn.net/lifangfang0607/article/details/88916057