注意點:
是否是es6語法
物件方法是否包含不可列舉屬性、是否包含非自身屬性(繼承屬性)
一.既可以遍歷陣列也可以遍歷物件的方法
1.for in 迴圈物件(遍歷物件自身的和繼承的可列舉的屬性)和陣列
let obj =
for (let i in obj)
二.遍歷物件的方法
1.object.keys()(es6)(遍歷自身的可列舉的屬性的鍵名)
返回的是乙個包含物件自身可列舉屬性的陣列(不含symbol屬性)。
2.objcet.getownpropertynames()(遍歷自身的可列舉和不可列舉屬性)
返回陣列
三.遍歷陣列的方法
1.for迴圈(包括原型繼承的屬性)
let arr = [1, 2, 3]
for (let i=0; i沒有返回值;
可以跳出迴圈
i為字串格式,當迴圈陣列時,需要和陣列索引的number格式區分。
另外,它不僅遍歷自身的屬性,還會找到 prototype 上去,所以最好在迴圈體內加乙個判斷,就用obj.hasownproperty(obj(i)),這樣就避免遍歷出太多不需要的屬性。
2.foreach
let arr = [1, 2, 3]
arr.foreach(function(i, index))
沒有返回值;
在所有元素呼叫完畢之前是不能停止的;
3.map迴圈
let arr = [1, 2, 3]
let tt = arr.map(function (i) )
返回乙個新陣列,陣列中的元素為原始陣列元素呼叫函式處理後的值;
不可以跳出迴圈
4.for of (es6)
for (let i of arr)
沒有返回值
es6 中新增的語句,用來替代 for in 和 foreach,它允許你遍歷 arrays(陣列), strings(字串), maps(對映), sets(集合)等可迭代(iterable data)的資料結構。
5.filter
let arr = [1, 2, 3]
let tt = arr.filter(function(i) )
有返回值
返回通過過濾的元素組成的新陣列
6.some
let arr = [1, 2, 3]
let tt = arr.some(function(i) )
用於檢測陣列中的元素是否有滿足指定條件(函式提供)的元素,返回 boolean 值,只要有符合的,就返回true。
7.every
let arr = [1, 2, 3]
let tt = arr.some(function(i) )
用於檢測陣列是否所有元素都符合指定條件(通過函式提供),返回 boolean 值,都符合才返回true。
個人不常用:
8.while
cars=["bmw", "volvo", "saab", "ford"]
var i = 0
while (cars[i])
9.do while
let i = 3
do while (i > 0)
js 陣列和物件的方法記錄
會影響原先陣列的方法list 1 新增 push 往陣列末尾新增資料 ushift 往陣列頭部新增資料 2 刪除 pop 從陣列末尾刪除資料 shift 從陣列頭部刪除資料 3 增刪改陣列 splice 刪除,增加,替換陣列元素不影響原先資料的方法 1 合併陣列 concat 合併陣列 a a.co...
JS學習 物件和迴圈
類似於大部分語言中的字典型別 1.1 檢測物件是否擁有某一屬性,可以用in或者hasownproperty 1.2 兩者的區別 in 判讀某一物件屬性的存在不一定是此物件的,有可能是此物件從父類繼承過來的 hasownproperty 判讀某一物件的屬性是否是自身擁有的。和swift中的迴圈取出值不...
js遍歷陣列和物件的方法
第二條鏈結裡有分析不同遍歷方式的效率 var arr name age var obj for in遍歷陣列和和物件 for key in obj foreach遍歷陣列,三個引數依次是陣列元素 索引 陣列本身 arr.foreach function value,index,array 返回乙個陣...