国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ES5和ES6】數(shù)組遍歷的各種方法集合

這篇具有很好參考價值的文章主要介紹了【ES5和ES6】數(shù)組遍歷的各種方法集合。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【ES5和ES6】數(shù)組遍歷的各種方法集合,面試必備技巧,es6,javascript,前端

一、ES5的方法

1.for循環(huán)

let arr = [1, 2, 3]
for (let i = 0; i < arr.length; i++) {
	console.log(arr[i])
}
// 1
// 2
// 3

2.forEach()

  1. 特點: 沒有返回值,只是針對每個元素調(diào)用func
  2. 三個參數(shù):item, index, arr ;當前項,當前項的索引,被遍歷的數(shù)組
let arr = [1, 2, 3]
arr.forEach(function (item, index, arr) {
	console.log(item, index)
})
//  1 0
//  2 1
//  3 2

3. for 循環(huán) 和forEach區(qū)別

for 循環(huán)可以在循環(huán)體中終止或跳過該循環(huán),forEach不可以

let arr = [1, 2, 3]
for (let i = 0; i < arr.length; i++) {
	if (arr[i] === 1) {
		continue // 跳過
	}
    if (arr[i] === 3) {
        break
    }
	console.log(arr[i])
}
// 2 

4.map()

  1. 特點:返回新的arr, 每個元素為調(diào)用函數(shù)返回的結(jié)果
  2. 參數(shù):
    function:必選,數(shù)組中每個元素都會執(zhí)行的函數(shù)
    thisValue:可選,用作"this"指向,如果不傳,那么回調(diào)函數(shù)的this為全局對象
    function的參數(shù):item, index, arr ;當前項,當前項的索引,被遍歷的數(shù)組
let arr = [1, 2, 3]
let result = arr.map(function (value) {
	value += 1
	return value
})
console.log(arr, result)
//(3) [1, 2, 3] (3) [2, 3, 4]

4.filter()

  1. 特點:過濾元素, 返回符合條件的元素組成的新數(shù)組
let arr = [1,2,3] 
let result = arr.filter(function (value) {
	return value === 2
})
console.log(arr, result)
// (3) [1, 2, 3] [2]

5.some()

  1. 特點: 返回boolean,只要循環(huán)中,有一個元素符合條件,那么就返回true,否則false
let arr = [1,2,3]
let result = arr.some(function (value) {
	return value === 2
})
console.log(arr, result )
// (3) [1, 2, 3] true

6.every()

  1. 特點: 返回boolean,在循環(huán)中,每一個元素都符合條件,那么就返回true,否則false
let arr = [1,2,3]
let result = arr.every(function (value) {
	return typeof value === 'number'
})
console.log(arr, result)
// (3) [1, 2, 3] true

7.reduce()

1. 接收一個函數(shù)作為累加器

2. 參數(shù):function(prev, cur, index, arr), initValue

prev 表示上一次調(diào)用函數(shù)的返回值
cur 表示當前正在處理的元素
index 當前元素的索引
arr 原數(shù)組
initValue 傳遞給函數(shù)的初始值

3. 常見應(yīng)用場景

  1. 求數(shù)組的每一項的和
let arr = [1, 2, 3]
let sum = arr.reduce(function(prev, cur, index, arr){
	return prev + cur
}, 0) 
console.log(sum)
// 6
  1. 找到數(shù)組里面最大的值
let arr = [1, 2, 3]
let max = arr.reduce(function (prev, cur) {
	return Math.max(prev, cur)
})
console.log(arr, max)
// (3) [1, 2, 3] 3
  1. 數(shù)組去重
let arr = [1, 2, 3, 2, 4]
let res = arr.reduce(function (prev, cur) {
	prev.indexOf(cur) == -1 && prev.push(cur)
	return prev 
}, [])
console.log(res)
// (4) [1, 2, 3, 4]

8.for in (謹慎使用)

1.特點:不僅循環(huán)遍歷了數(shù)組本身,同時循環(huán)遍歷了數(shù)組原型鏈上的屬性和方法

let arr = [1, 2, 3]
Array.prototype.name ='xiaoxiao'
Array.prototype.foo = function () {
	console.log('foo')
}
for (let index in arr) {
	console.log(index, arr[index])
}
//0 1
// 1 2
// 2 3
// name xiaoxiao
// foo ? () {
//	console.log('foo')
// }

二、ES6的方法

1.find()

返回第一個符合條件的元素

let arr = [1,2,3,4, 2]
let res = arr.find(function (value) {
	return value === 2
})
console.log(res, arr)
// 2 (5) [1, 2, 3, 4, 2]
// 返回第一個數(shù)字2

2.findIndex()

返回第一個符合條件的元素的索引文章來源地址http://www.zghlxwxcb.cn/news/detail-663435.html

let arr = [1,2,3,4, 2]
let res = arr.findIndex(function(value) {
	return value === 2
})
console.log(arr, res)
// (5) [1, 2, 3, 4, 2] 1

3.for of 循環(huán)

1. 普通循環(huán)

let arr = [
	{
		name: '張三',
		age: 18
	}, 
	{
		name: '趙四',
		age:20
	}
]
for( let item  of arr) {
	console.log(item, arr)
}
// {name: '張三', age: 18}, Object (2) [{…}, {…}]
// {name: '趙四', age: 20}, Object (2) [{…}, {…}]

2.values() 獲取每一項的value值

let arr = [
	{
		name: '張三',
		age: 18
	}, 
	{
		name: '趙四',
		age:20
	}
]
for( let item  of arr.values()) {
	console.log(item, arr)
}
// {name: '張三', age: 18}, Object (2) [{…}, {…}]
// {name: '趙四', age: 20}, Object (2) [{…}, {…}]

3.keys() 獲取每一項的索引

let arr = [
	{
		name: '張三',
		age: 18
	}, 
	{
		name: '趙四',
		age:20
	}
]
for( let item  of arr.keys()) {
	console.log(item, arr)
}
// 0 (2) [{…}, {…}]
// 1 (2) [{…}, {…}]

4.entries(),返回每一項 索引 和 value值 組合的數(shù)組

let arr = [
	{
		name: '張三',
		age: 18
	}, 
	{
		name: '趙四',
		age:20
	}
]
for( let [index, item]  of arr.entries()) {
	console.log(index, item)
}
// 0 {name: '張三', age: 18}
// 1 {name: '趙四', age: 20}

到了這里,關(guān)于【ES5和ES6】數(shù)組遍歷的各種方法集合的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JavaScript版本ES5/ES6及后續(xù)版本

    JavaScript版本ES5/ES6及后續(xù)版本

    Brendan Eich在短短10天內(nèi)創(chuàng)建了JavaScript的第一個版本。它被稱為摩卡,但已經(jīng)具備了現(xiàn)代JavaScript的許多基本特性! 為了吸引Java開發(fā)人員,Mocha先是更改為LiveScript,然后又更改為JavaScript然而,JavaScript與Java幾乎沒有任何關(guān)系; 微軟推出了IE,從網(wǎng)景復(fù)制JavaScript,并稱之為JScript; 由

    2024年02月13日
    瀏覽(34)
  • this在Es5和Es6的區(qū)別

    在ES5和ES6中,this的指向有所不同。 在ES5中,this的默認指向是全局對象(在瀏覽器環(huán)境中通常是window對象)。在函數(shù)中,this的指向取決于函數(shù)的調(diào)用方式。例如,在方法調(diào)用中,this指向調(diào)用該方法的對象;在構(gòu)造函數(shù)中,this指向構(gòu)造出來的新對象;在定時器或事件處理函數(shù)

    2024年01月19日
    瀏覽(27)
  • ES5 構(gòu)造函數(shù)與ES6 Class的區(qū)別

    Class 類中不存在變量提升 class內(nèi)部會啟用嚴格模式 class的所有方法都是不可枚舉的 class 必須使用new調(diào)用 class 內(nèi)部無法重寫類名 class 的繼承有兩條繼承鏈 一條是: 子類的__proto__ 指向父類 另一條: 子類prototype屬性的__proto__屬性指向父類的prototype屬性. es6的子類可以通過__pro

    2024年02月06日
    瀏覽(32)
  • JavaScript、TypeScript、ES5、ES6之間的聯(lián)系和區(qū)別

    JavaScript、TypeScript、ES5、ES6之間的聯(lián)系和區(qū)別

    ECMAScript: ?一個由 ECMA International 進行標準化,TC39 委員會進行監(jiān)督的語言。通常用于指代標準本身。 JavaScript: ?ECMAScript 標準的各種實現(xiàn)的最常用稱呼。這個術(shù)語并不局限于某個特定版本的 ECMAScript 規(guī)范,并且可能被用于任何不同程度的任意版本的 ECMAScript 的實現(xiàn)。 ECMAS

    2024年02月13日
    瀏覽(34)
  • ES5 的構(gòu)造函數(shù)和 ES6 的類有什么區(qū)別

    在JavaScript中,類和構(gòu)造函數(shù)都被用來創(chuàng)建對象,接下來會從以下幾點說說兩者的區(qū)別: 構(gòu)造函數(shù)使用函數(shù)來定義 類使用class來定義 ES6 的 class 可以看作是一個語法糖,這種寫法只是讓對象原型的寫法更加清晰、更像面向?qū)ο缶幊痰恼Z法。 比如這是一個構(gòu)造函數(shù)生成實

    2024年02月11日
    瀏覽(23)
  • 【微信小程序 | 實戰(zhàn)開發(fā)】實現(xiàn)ES6轉(zhuǎn)ES5開關(guān)

    【微信小程序 | 實戰(zhàn)開發(fā)】實現(xiàn)ES6轉(zhuǎn)ES5開關(guān)

    你是否想要掌握人工智能的最新技術(shù)和應(yīng)用?你是否想要成為未來社會的創(chuàng)新者和領(lǐng)導(dǎo)者?你是否想要和全球的優(yōu)秀導(dǎo)師和同學(xué)一起學(xué)習和交流?如果你的答案是肯定的,那么歡迎來到床長人工智能教程網(wǎng)站,這里是你實現(xiàn)夢想的起點! 個人名片: ?? 作者簡介:一名大二在

    2024年02月11日
    瀏覽(16)
  • 【chatGTP 對es6與es5的區(qū)別是什么的解析】

    筆者對chatGPT做了一些提問其結(jié)果另人印象深刻,這回答要比一些博主的文章要精彩的多,機器取代人工寫作看樣子是時間問題了 ES6 (ECMAScript 2015) 和 ES5 (ECMAScript 5) 是 JavaScript 的兩個主要版本,它們之間有很多區(qū)別。 以下是 ES6 相對于 ES5 的主要區(qū)別: 變量聲明方式: ES6 引入

    2024年02月02日
    瀏覽(18)
  • 【微信小程序 | 實戰(zhàn)開發(fā)】ES5、ES6概述和新特性介紹

    【微信小程序 | 實戰(zhàn)開發(fā)】ES5、ES6概述和新特性介紹

    個人名片: ?? 作者簡介:一名大二在校生,喜歡編程?? ????? 個人主頁??: 小新愛學(xué)習. ?? 個人WeChat:hmmwx53 ??? 系列專欄:??? 零基礎(chǔ)學(xué)Java——小白入門必備 重識C語言——復(fù)習回顧

    2024年02月09日
    瀏覽(14)
  • 數(shù)組的原型方法-es6

    數(shù)組的原型方法-es6

    數(shù)組的原型方法-es6 Array.form() Array.of() find() 和 findIndex() copyWithin() fill() entries(),keys()和values() includes() flat()和flatMap() 擴展運算符 at() reduce()和reduceRight() some()判斷數(shù)組中是否存在滿足條件的項 18、Array.form() Array.from方法用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-li

    2024年02月09日
    瀏覽(26)
  • 【JavaScript】數(shù)組方法 (ES6)

    arr.find(callback) 用于獲取第 1 個符合要求的元素: callback : (item, index, arr) = boolean item -當前值、 index -當前索引、 arr -當前數(shù)組 返回值: callback 第一次返回 true 的對應(yīng) item ;如果沒有符合的元素,則返回 undefined arr.findIndex(callback) 用于獲取第 1 個符合要求的元素的下標: cal

    2024年02月14日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包