搜尋
首頁web前端前端問答es6遍歷物件和陣列的方法有哪些
es6遍歷物件和陣列的方法有哪些Jan 29, 2023 pm 07:00 PM
es6es6數組

遍歷物件的方法:1、「for in」語句,可循環遍歷物件本身的和繼承的可枚舉屬性;2、Object.keys()和Object.values();3、Object .getOwnPropertyNames()。遍歷陣列的方法:1、forEach(),可為陣列中的每個元素呼叫一個函數;2、map(),對陣列的每個元素呼叫指定的回調函數;3、filter();4、some ()等等。

es6遍歷物件和陣列的方法有哪些

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

在工作中常會用到數組或物件的遍歷,for的一大痛點就是額外定義了變量,for迴圈一多,變數又容易衝突。 ES6給了新的遍歷的方法,我們一起來看

遍歷物件

1、for (let k in obj) {}

循環遍歷物件本身的和繼承的可枚舉屬性 (循環遍歷物件本身的和繼承的可枚舉屬性(不含Symbol屬性)

let obj = {'0':'a','1':'b','2':'c'}
for (let k in obj) {
	console.log(k+':'+obj[k])
}
//0:a
//1:b
//2:c

2、Object.keys(obj)|| Object.values(obj)

傳回一個遍歷物件屬性或屬性值的數組(不含Symbol屬性)。

  • Object.keys() 方法會傳回一個由給定物件的自身可枚舉屬性組成的陣列,數組中屬性名稱的排列順序和正常循環遍歷該物件時傳回的順序一致。

  • Object.values() 方法傳回給定物件本身的所有可枚舉屬性值的數組,值的順序與使用 for...in 循環的順序相同(區別在於for-in 循環枚舉原型鏈中的屬性)。

  • ##
    let obj = {'0':'a','1':'b','2':'c'}
    console.log(Object.keys(obj))
    //["0","1","2"]
    console.log(Object.values(obj))
    //["a","b","c"]

# 3、Object.getOwnPropertyNames(obj)

傳回遍歷物件屬性或屬性值的陣列(不含Symbol屬性,自身屬性-不含原型上的屬性) 。

let obj = {'0':'a','1':'b','2':'c'};

Object.getOwnPropertyNames(obj).forEach(function(key){
    console.log(key,obj[key]);
});
// 0 a
// 1 b
// 2 c

遍歷陣列

1、arr.forEach

注意,參數是一個匿名函數,且第一個參數是陣列成員的value,第二個是他們的index。

var name = ['张三', '李四', '王五'];
['张三', '李四', '王五'].forEach((v,l,k) => {
	console.log(v);
	console.log(l);
	console.log(k);
})

es6遍歷物件和陣列的方法有哪些

2、for(let k in arr){}

let arr = ['a','b','c','d']
for(let k in arr){
	console.log(k,arr[k])
}
// 0 a
// 1 b
// 2 c
// 3 d

k是每個陣列成員的index值。

3、for(let k of arr){ }

k是每個陣列成員的value值。

不僅支援數組,也支援大多數類別數組物件(偽數組) ,例如DOM NodeList物件.

也支援字串遍歷,它將字串視為一系列的Unicode字元來進行遍歷.

let arr = ['a','b','c','d']
for(let k of arr){
	console.log(k)
}
//  a
//  b
//  c
//  d

4、map(): 

map 是表示映射的,也就是一一對應,遍歷完成之後會回傳一個新的數組,但是不會修改原來的數組

var a1 = ['a', 'b', 'c'];
var a2 = a1.map(function(item,key,ary) {
     return item.toUpperCase();
});
console.log(a1);// ['a','b','c'];
console.log(a2); //['A','B','C'];

5、filter()

它呢有過濾的意思,也就說它就是一個過濾器,那它怎麼用呢

var a1 = [1,2,3,4,5,6];
var a2 = a1.filter(function(item) { 
     return item <p><a id="reduce__41"></a>6、reduce()<strong></strong></p>從左到右依此遍歷,一般用來做加減乘除用算用的<p></p><pre class="brush:php;toolbar:false">var a1 = [1, 2, 3];
var total = a1.reduce(function(first, second) { 
     return first + second; 
},0);
console.log(total) // Prints 6

//注意 1、就是 return first+second 其实相当于  return first+=second; 也就是说每次的first 是上一次的和
    //2、就是function{}后面的参数,如果 有值 那么第一次加载的时候 first  = 0; second = 1;
    如果没有值 , first = 1 , second = 2;如果后面的参数是个字符串,那么就是会是字符串拼接、

7、every(且)

function isNumber(value){ 
    return typeof value == 'number';
}
var a1 = [1, 2, 3];
console.log(a1.every(isNumber)); // logs true
var a2 = [1, '2', 3];
console.log(a2.every(isNumber)); // logs false

//注意:数组中每一个元素在callback上都被返回true时就返回true,否则为false

#8、some (或)

function isNumber(value){ 
return typeof value == 'number';
}
var a1 = [1, 2, 3];
console.log(a1.some(isNumber)); // logs true
var a2 = [1, '2', 3];
console.log(a2.some(isNumber)); // logs true
var a3 = ['1', '2', '3'];
console.log(a3.some(isNumber)); // logs false

//注意:只要数组中有一项在callback上被返回true,就返回true
【相關推薦:

javascript影片教學web前端

以上是es6遍歷物件和陣列的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
ES6怎么求数组反转ES6怎么求数组反转Oct 26, 2022 pm 06:19 PM

在ES6中,可以利用数组对象的reverse()方法来实现数组反转,该方法用于颠倒数组中元素的顺序,将最后一个元素放在第一位,而第一个元素放在最后,语法“array.reverse()”。reverse()方法会修改原始数组,如果不想修改需要配合扩展运算符“...”使用,语法“[...array].reverse()”。

es6怎么找出2个数组中不同项es6怎么找出2个数组中不同项Nov 01, 2022 pm 06:07 PM

步骤:1、将两个数组分别转为set类型,语法“newA=new Set(a);newB=new Set(b);”;2、利用has()和filter()求差集,语法“new Set([...newA].filter(x =>!newB.has(x)))”,差集元素会被包含在一个set集合中返回;3、利用Array.from将集合转为数组类型,语法“Array.from(集合)”。

es6中怎么判断两个对象是否相等es6中怎么判断两个对象是否相等Apr 19, 2022 pm 03:34 PM

在es6中,可用Object对象的is()方法来判断两个对象是否相等,该方法检测两个变量的值是否为同一个值,判断两个对象的引用地址是否一致,语法“Object.is(对象1,对象2)”;该方法会返回布尔值,若返回true则表示两个对象相等。

es6怎么将数字转为字符串es6怎么将数字转为字符串Apr 19, 2022 pm 06:38 PM

转换方法:1、利用“+”给数字拼接一个空字符,语法“数字+""”;2、使用String(),可把对象的值转换为字符串,语法“String(数字对象)”;3、用toString(),可返回数字的字符串表示,语法“数字.toString()”。

es6数组怎么转换成字符串es6数组怎么转换成字符串Oct 18, 2022 pm 02:48 PM

3种转换方法:1、使用join()函数把数组中的所有元素放入一个字符串,语法“数组对象.join(分隔符)”;2、使用toString()函数,语法“数组对象.toString()”或“数组对象.toString().replace(/,/gi,'分隔符')”;3、使用toLocaleString()函数,语法“数组对象.toLocaleString()”。

数组some和every是es6方法吗数组some和every是es6方法吗May 19, 2022 pm 05:40 PM

some和every是es6方法。some()和every()是es6 Array对象新增的方法,some()用于检测数组中是否存在符合条件的元素,只要有一个符合就会返回true;而every()用来检测数组的所有元素是否都满足指定的条件。

es6怎么将类数组对象转数组es6怎么将类数组对象转数组Jan 03, 2023 pm 02:33 PM

转换方法:1、使用“for in”语句将类数组对象转换为数组,语法“for(var i in obj){console.log(arr.push(obj[i]));}”;2、使用内置对象keys和valus,语法“Object.keys(obj)”和“Object.values(obj)”;3、使用Array对象的from()函数,语法“Array.from(obj)”。

es6怎么删除数组中的元素es6怎么删除数组中的元素May 19, 2022 pm 07:17 PM

删除方法:1、用shift()删除第一个元素,语法“arr.shift()”;2、用pop()删除最后一个元素,语法“arr.pop()”;3、用splice()根据下标删除任意元素,语法“arr.splice(开始下标,删除元素个数)”。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具