ES5 數(shù)組拓展

Array.isArray(obj)

判斷一個(gè)對(duì)象是不是數(shù)組

var a = new Array(123);
var b = new Date();
console.log(Array.isArray(a)); //true
console.log(Array.isArray(b)); //false

.indexOf(element)/.lastIndexOf(element)

用于查找數(shù)組內(nèi)指定元素位置,查找到第一個(gè)后返回其索引,沒(méi)有查找到返回-1,indexOf從頭至尾搜索,lastIndexOf反向搜索

var a = new Array(1,2,3,3,2,1);
console.log(a.indexOf(2)); //1
console.log(a.lastIndexOf(2)); //4

.forEach(element, index, array)

遍歷數(shù)組,參數(shù)為一個(gè)回調(diào)函數(shù),回調(diào)函數(shù)有三個(gè)參數(shù):
1.元素element
2.元素索引index
3.整個(gè)數(shù)組array

var a = new Array(1,2,3,4,5,6);
a.forEach(function(e,i,array){
    array[i]= e + 1;
});
console.log(a); //[2, 3, 4, 5, 6, 7]

.every(function(element, index, array))

.some(function(element, index, array))

  • every是所有函數(shù)的每個(gè)回調(diào)函數(shù)都返回true的時(shí)候才會(huì)返回true,當(dāng)遇到false的時(shí)候終止執(zhí)行,返回false
  • some函數(shù)是存在有一個(gè)回調(diào)函數(shù)返回true的時(shí)候終止執(zhí)行并返回true,否則返回false
  • 在空數(shù)組上調(diào)用every返回true,some返回false
var a=new Array(1,2,3,4,5,6);

console.log(a.every(function(e, i, arr){
return e < 5;
}));
//false
console.log(a.some(function(e,i,arr){
  return e > 4;
}));
//true

.map(function(element))

與forEach類(lèi)似,遍歷數(shù)組,回調(diào)函數(shù)返回值組成一個(gè)新數(shù)組返回,新數(shù)組索引結(jié)構(gòu)和原數(shù)組一致,原數(shù)組不變

var a = new Array(1,2,3,4,5,6);

console.log(a.map(function(e){
  return e * e;
}));  // [1, 4, 9, 16, 25, 36]

console.log(a); //[1, 2, 3, 4, 5, 6]

.filter(function(element))

返回?cái)?shù)組的一個(gè)子集,回調(diào)函數(shù)用于邏輯判斷是否返回,原數(shù)組保持不變

var a = new Array(1,2,3,4,5,6);

console.log(a.filter(function(e){
  return e % 2 == 0;
})); // [2, 4, 6]

console.log(a); //[1, 2, 3, 4, 5, 6]

.reduce(function(v1, v2), value)

.reduceRight(function(v1, v2), value)

遍歷數(shù)組,調(diào)用回調(diào)函數(shù),將數(shù)組元素組合成一個(gè)值,reduce從索引最小值開(kāi)始,reduceRight反向,方法有兩個(gè)參數(shù)
1.回調(diào)函數(shù):把兩個(gè)值合為一個(gè),返回結(jié)果
2.value,一個(gè)初始值,可選

var a = new Array(1,2,3,4,5,6);

console.log(a.reduce(function(v1, v2){
    return v1 + v2;
})); // 21

console.log(a.reduceRight(function(v1, v2){
    return v1 - v2;
}, 100)); // 79

本教程版權(quán)歸饑人谷和作者所有,轉(zhuǎn)載須說(shuō)明來(lái)源。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ES5 數(shù)組拓展 ES5為Array對(duì)象做了大幅拓展 Array.isArray(obj) 這是Array對(duì)象的一...
    南山碼農(nóng)閱讀 280評(píng)論 0 0
  • Array.isArray(obj)是不是數(shù)組,判斷! 這是一個(gè)Array對(duì)象的一個(gè)靜態(tài)函數(shù),判斷一個(gè)對(duì)象是不是數(shù)...
    流著萬(wàn)條永遠(yuǎn)的河閱讀 267評(píng)論 0 0
  • Array.isArray(obj) 這是Array對(duì)象的一個(gè)靜態(tài)函數(shù),用來(lái)判斷一個(gè)對(duì)象是不是數(shù)組 .indexO...
    左冬的博客閱讀 488評(píng)論 0 4
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,890評(píng)論 0 33
  • 沒(méi)有原因地,我緩緩?fù)O萝?chē),打開(kāi)天窗,放平座椅,躺下了去。誰(shuí)說(shuō)天是黑色的,我看到的天空是暗褐色,做不出明確的...
    半步天涯閱讀 466評(píng)論 0 1

友情鏈接更多精彩內(nèi)容