成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS 數(shù)組遍歷的方法

tianlai / 2963人閱讀

摘要:首次調(diào)用回調(diào)函數(shù)時(shí),和可以是兩個(gè)值之一。否則返回張三男王小毛男李四男李四對于數(shù)組中的每個(gè)元素,方法都會調(diào)用一次回調(diào)函數(shù)采用升序索引順序,直到有元素返回。

整理了一下數(shù)組遍歷的方法

1、for循環(huán)
let arr = [1,2,3,4]
for(let j = 0,len=arr.length; j < len; j++) {
    console.log(arr[j]);
}

2、forEach循環(huán)
//1 沒有返回值
arr.forEach((item,index,array)=>{
    console.log(index+":"+arr[index]);
})
//參數(shù):value數(shù)組中的當(dāng)前項(xiàng), index當(dāng)前項(xiàng)的索引, array原始數(shù)組;
//數(shù)組中有幾項(xiàng),那么傳遞進(jìn)去的匿名回調(diào)函數(shù)就需要執(zhí)行幾次;

3、map循環(huán)

map的回調(diào)函數(shù)中支持return返回值;
并不影響原來的數(shù)組,只是相當(dāng)于把原數(shù)組克隆一份,把克隆的這一份的數(shù)組中的對應(yīng)項(xiàng)改變了;

var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,ary ) {
    return item*10;
})
console.log(res);//-->[120,230,240,420,10];  原數(shù)組拷貝了一份,并進(jìn)行了修改
console.log(ary);//-->[12,23,24,42,1];  原數(shù)組并未發(fā)生變化

4、for Of 遍歷

可以調(diào)用break、continue和return語句

var myArray= [12,23,24,42,1];
for (var value of myArray) {
console.log(value);
}

5、filter遍歷

不會改變原始數(shù)組,返回新數(shù)組

var arr = [
  { id: 1, value: 2 },
  { id: 2, value: 4 },
  { id: 2, value: 7 },
]
let newArr = arr.filter(item => item.value>2);
console.log(newArr ,arr )

6、every遍歷

every()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對每一項(xiàng)返回true,則返回true。如果返回false,就退出遍歷

var arr = [ 1, 2, 3, 4, 5, 6 ];
if(arr.every( function( item, index, array ){
        return item > 3;
   })){
        console.log("滿足條件,每一個(gè)都大于3" );
    }else{
        console.log("不滿足條件,不是每一個(gè)都大于3" );
    }

7、some遍歷

some()是對數(shù)組中每一項(xiàng)運(yùn)行指定函數(shù),如果該函數(shù)對任一項(xiàng)滿足條件,則返回true,就退出遍歷;否則返回false。

var arr = [ 1, 2, 3, 4, 5, 6 ];
if(arr.some( function( item, index, array ){
        return item > 3;
   })){
        console.log("");
    }else{
        console.log("不滿足條件,沒有大于3的" );
    }

8、reduce

reduce 為數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個(gè)參數(shù):初始值(或者上一次回調(diào)函數(shù)的返回值),當(dāng)前元素值,當(dāng)前索引,調(diào)用 reduce 的數(shù)組。

var total = [0,1,2,3,4].reduce((a, b)=>a + b); //10
console.log(total)

9、reduceRight

reduceRight()方法的功能和reduce()功能是一樣的,不同的是reduceRight()從數(shù)組的末尾向前將數(shù)組中的數(shù)組項(xiàng)做累加。
reduceRight()首次調(diào)用回調(diào)函數(shù)callbackfn時(shí),prevValue 和 curValue 可以是兩個(gè)值之一。如果調(diào)用 reduceRight() 時(shí)提供了 initialValue 參數(shù),則 prevValue 等于 initialValue,curValue 等于數(shù)組中的最后一個(gè)值。如果沒有提供 initialValue 參數(shù),則 prevValue 等于數(shù)組最后一個(gè)值, curValue 等于數(shù)組中倒數(shù)第二個(gè)值。

var arr = [0,1,2,3,4];
arr.reduceRight(function (preValue,curValue,index,array) {
    console.log(preValue ,curValue)
    return preValue + curValue;
}); // 10

10、find

find()方法返回?cái)?shù)組中符合測試函數(shù)條件的第一個(gè)元素。否則返回undefined

let name= [
    {
        name: "張三",
        gender: "男",
        age: 20
    },
    {
        name: "王小毛",
        gender: "男",
        age: 20
    },
    {
        name: "李四",
        gender: "男",
        age: 20
    }
];
function getStu(element){
   return element.name == "李四"
}
name.find(getStu)

11、findIndex

對于數(shù)組中的每個(gè)元素,findIndex 方法都會調(diào)用一次回調(diào)函數(shù)(采用升序索引順序),直到有元素返回 true。只要有一個(gè)元素返回 true,findIndex 立即返回該返回 true 的元素的索引值。如果數(shù)組中沒有任何元素返回 true,則 findIndex 返回 -1。
findIndex 不會改變數(shù)組對象。

[1,2,3].findIndex(function(x) { x == 2; });

[1,2,3].findIndex(x => x == 4);

[1,2,3].findIndex(x => x == 3);

12、ES6 新方法keys,values,entries

ES6 提供三個(gè)新的方法 —— entries(),keys()和values() —— 用于遍歷數(shù)組。它們都返回一個(gè)遍歷器對象,可以用for...of循環(huán)進(jìn)行遍歷,唯一的區(qū)別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷

for (let index of ["a", "b"].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of ["a", "b"].values()) {
console.log(elem);
}
// "a"
// "b"
for (let [index, elem] of ["a", "b"].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105724.html

相關(guān)文章

  • Js之淺拷貝深拷貝與對象數(shù)組遍歷

    摘要:判斷是深拷貝對象還是數(shù)組如果要拷貝的對象的屬性依然是個(gè)復(fù)合類型,遞歸運(yùn)用遞歸,當(dāng)要拷貝的對象或者數(shù)組的屬性依然是個(gè)對象或者數(shù)組時(shí),遞歸調(diào)用。遍歷對象聊完了深拷貝和淺拷貝,接下來說一下遍歷。 在js這門語言中,數(shù)據(jù)存放在堆中,而數(shù)據(jù)的引用的存放在棧中。 淺拷貝 我們說的淺拷貝,指的是,引用地址的拷貝,棧中兩塊不同的引用地址都指向了堆中同樣一塊區(qū)域。所以,我們通過一個(gè)地址修改了堆中的數(shù)據(jù),...

    liangzai_cool 評論0 收藏0
  • JS 數(shù)組循環(huán)遍歷方法對比

    摘要:循環(huán)方法方法不改變原數(shù)組方法會給原數(shù)組中的每個(gè)元素都按順序調(diào)用一次函數(shù)。篩選出過濾出數(shù)組中符合條件的項(xiàng)組成新數(shù)組代碼方法方法為數(shù)組中的每個(gè)元素執(zhí)行一次函數(shù),直到它找到一個(gè)使返回表示可轉(zhuǎn)換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發(fā)展至今已經(jīng)發(fā)展出多種數(shù)組的循環(huán)遍...

    BlackFlagBin 評論0 收藏0
  • jS:關(guān)于對象遍歷數(shù)組遍歷那些事

    摘要:如圖遍歷數(shù)組遍歷數(shù)組元素并以某種方式處理每個(gè)元素是一個(gè)常見的操作。如圖不過,里的功能比較強(qiáng)大,可以遍歷而且返回值是的則被省略掉總結(jié)遍歷對象,遍歷出來的是鍵名,而不是鍵值,參數(shù)必須是對象。 可能是由于職業(yè)的關(guān)系,下班之后完全不想Open PC,但很多知識點(diǎn)有必要自己做個(gè)小小總結(jié)。本人之前對原生Array和Object完全沒概念。 遍歷對象的方法: Object.keys(Object)...

    qingshanli1988 評論0 收藏0
  • js遍歷之for forEach in of

    摘要:語法參數(shù)當(dāng)前遍歷項(xiàng)。遍歷的范圍在第一次調(diào)用前就會確定。已刪除的項(xiàng)不會被遍歷到。的是由提出的,目的是作為遍歷所有數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一方法。不僅可以遍歷數(shù)組,還可以遍歷結(jié)構(gòu),某些類似數(shù)組的對象如對象對象,對象,以及字符串。 即使是最簡單的循環(huán),其中也深藏學(xué)問 ECMAScript5(es5)有三種for循環(huán) 簡單for for in forEach ECMAScript6(es6)新增 fo...

    yeyan1996 評論0 收藏0
  • JS 數(shù)組常用API方法遍歷方法總結(jié)

    摘要:數(shù)組語法功能遍歷數(shù)組,返回回調(diào)返回值組成的新數(shù)組,不改變原數(shù)組,不會對空數(shù)組進(jìn)行檢測語法功能無法,可以用中來停止,不改變原數(shù)組語法功能過濾,返回過濾后的數(shù)組,不改變原數(shù)組,不會對空數(shù)組進(jìn)行檢測語法功能有一項(xiàng)返回,則整體為,不改變原數(shù)組語法 數(shù)組 (array) ES5 * map 語法:[].map(function(item, index, array) {return xxx})功...

    TNFE 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<