JS中數組的迭代方法Math方法和延時器定時器
數組迭代
every()和some
every()和some()用了查詢數組的項是否滿足一定的條件,every()是傳入的函數每一項都返回true,否則返回fasle
some()方法則是隻要傳入的函數數組中的莫一項返回true。則返回true
<script>
let arr1=[1,2,3,4,5];
let arr2=["a","e","b","c","d"];
let bool1=arr1.every(function(item,index,array) {
//every()和some()用了查詢數組的項是否滿足一定的條件,every()是傳入的函數每一項都返回true,否則返回fasle
// some()方法則是隻要傳入的函數數組中的莫一項返回true。則返回true
/* 1 item指的是12345
2 index指的是下標
3 array指的是數組
*/
return item>2//false。
});
</Script>
fiter
相當於過濾篩選的意思
<script>
let arr1=[1,2,3,4,5];
let arr2=["a","e","b","c","d"];
let bool2=arr1.filter(function(item,index,array) {
//fiter是過濾的意思
return item%2===0;//返回數組中的偶數
});
</script>
map
map 返回一個新的數組,這個數組的每一項都是在原始數組中的對應的數據項目傳入函數經過一系列處理的結果
<script>
let arr2=["a","e","b","c","d"];
let newArray=arr1.map(function(item,index,array) {
return item*item;//newArray是item*item的結果,原數組的結果不改變
});
</script>
forEach()
forEach(),它只是對數組的每一項運行傳入的函數,這個方法內有返回值,本質上與使用for循環迭代數組一樣,可修改原數組
<script>
let arr3=[1,2,3,4,5];
let arr4=["a","e","b","c","d"];
arr3.forEach(function(item,index,array) {
array[index]=item*item;
//修改了原數組。
})
</script>
reduce()和reduceRight
reduce()方法從數組的第一項開始,逐個遍歷到最後,
reduceRight()則從數組的最後一項開始,向前遍歷到第一項
<script>
let arr1=[1,2,3,4,5];
let arr2=["a","e","b","c","d"];
let result=arr1.reduce(function(pre,current,index,array) {
//pre指的是前一個的值,cur指的是當前的值,
return pre+current;//上一次迭代的結果會作爲下一次迭代的第一個參數
});
</script>
Math對象
Math對象還包含很多方法,用於輔助完成簡單的和複雜的數學計算,其中,min和max方法用於確定一組
數據中的最小值和最大值,這兩個方法可以接受任意多個數值參數
<script>
var max=Math.max(2,3,4,5);
var min=Math.min(2,3,4,5);
</script>
取整:Math.ceil()向上舍入,它總是向上舍入爲最接近的整數
Math.floor()向下舍入。
Math.round()四捨五入
Math.random()默認返回一個大於等於0小於1的隨機數也可以改
另外random也可以更改數值範圍:如下
<script>
function random(min,max)
{
return Math.random()*(max-min)+min;//類似函數y=ax+b;
}
</script>
這個類似函數y=ax+b,b就是最小值。
延時器和定時器
<script>
//延時器
setTimeout(function(){
console.log(a);
},4);//在4秒後執行函數
var a=3;
//定時器
setInterval(function() {
console.log(2);
}, 3); //每個3秒運行依次函數
</script>