Array.from()從一個類似數(shù)組或可迭代的對象中創(chuàng)建一個新的數(shù)組實例
Array.from(‘foo') //['f','o','o'] 轉(zhuǎn)化成為一個數(shù)組了
如果不存在Array.isArray() 則在其他代碼之前運(yùn)行下面的代碼將創(chuàng)建 ?
Array.isArray()用于確定傳遞值是否是一個Array
if(!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]'
}
}
Array.of() 創(chuàng)建一個可變數(shù)量的新數(shù)組實例 而不考慮參數(shù)的數(shù)量或類型?
Array.of(7) ?//[7]
if(!Array.of){
Array.of = function() {
return Array.prototype.slice.call(arguments);
}
}
Array.ptototype.concat():用于合并兩個或多個數(shù)組 返回的是新合并后的數(shù)組
這是直接將兩個要合并的數(shù)組的值拷貝一份出來 組成一個新的數(shù)組?
元素拷貝的方式:
對象引用:concat方法會復(fù)制對象引用放在組合的新數(shù)組里面 原數(shù)組和新數(shù)組中的對象引用都指向同一個實際的對象 ?所以 ?實際的對象別修改時 兩個數(shù)組的元素也會被修改
賦值拷貝:字符串 數(shù)字 是直接拷貝放在新的數(shù)組里面 ?
Array.prototype.copyWithin() 淺復(fù)制數(shù)組的一部分到同一數(shù)組中的另一個位置 并返回
Array.prototype.entries() : 返回一個新的Array Iterator對象 ?該對象包含數(shù)組中每個索引的鍵/值對
Array.prototype.every() :方法測試數(shù)組的所有元素是否都通過了指定函數(shù)的測試
arr.every(callback[,,thisArg]) ?
Array.prototype.fill(): 用一個固定值填充一個數(shù)組中從起始索引到終止索引內(nèi)的全部元素 ?返回修改后的新數(shù)組
[1,2,3].fill(4,1,2)// [1, 4, 3]
Array.prototype.filter() ?: 創(chuàng)建一個新數(shù)組 包含通過所提供函數(shù)實現(xiàn)的測試的所有元素
Array.prototype.find():返回數(shù)組中滿足提供測試函數(shù)的第一個元素的值 否則是undefined
Array.prototype.findIndex() :返回數(shù)組中滿足條件的第一個元素的索引 否則返回-1
Array.prototype.forEach() : 對數(shù)組的每個元素執(zhí)行一次提供的函數(shù) 不能跳出循環(huán)
array.forEach(callback(currentValue,index,array) { do something},this)
currentValue數(shù)組當(dāng)前項的值
index 數(shù)組當(dāng)前項的索引
array: 數(shù)組對象本身
Array.prototype.indexOf() ?: 返回在數(shù)組中可以找到一個給定元素的第一個索引 如果不存在 則返回-1 ?首個被找到元素在數(shù)組中的索引的位子 ?沒找到就是-1
Array.prototype.join():將數(shù)組或類數(shù)組的對象的所有元素連接到一個字符串中
Array.prototype.keys(): 方法返回一個新的Array迭代器 包含數(shù)組中每個索引的鍵
Array.prototype.map() ?創(chuàng)建一個新數(shù)組 ?結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果 ?返回的是新的數(shù)組
Array.prototype.pop() ?從數(shù)組刪除最后一個元素 ?并返回該元素的值 改變了數(shù)組的長度
Array.prototype.push() 將一個或多個元素添加到數(shù)組的末尾 返回的是新數(shù)組的長度
Array.prototype.reduce() ?對累加器和數(shù)組中的每個元素應(yīng)用一個函數(shù) 將其減少為單個值
Array.prototype.slice() ?返回一個從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個新數(shù)組對象 原始數(shù)組不會被修改
slice不修改原數(shù)組 只會返回一個淺復(fù)制了元素組中元素的一個新數(shù)組
原數(shù)組的元素的一個新數(shù)組 :拷貝規(guī)則
對象引用:slice會拷貝這個對象用到新的數(shù)組里 兩個對象引用都引用了同一個對象 如果被引用的對象發(fā)生改變 則新的和原來的數(shù)組中的這個元素也會發(fā)生改變
普通字符串 數(shù)字布爾值 :slice會拷貝這些新值到新的數(shù)組 別的數(shù)組里修改這些字符串或數(shù)字 將不會影響另一個數(shù)組
類似數(shù)組對象(偽數(shù)組)Array-like ?:arguments
slice方法可以用來將一個類數(shù)組對象/集合轉(zhuǎn)換成一個數(shù)組 你只需要將該方法綁定到這個對象上?
Array.prototype.some() 測試數(shù)組中的某些元素是否通過提供的函數(shù)實現(xiàn)測試
Array.prototype.sort() ?在適當(dāng)?shù)奈恢脤?shù)組的元素進(jìn)行排序 并返回數(shù)組默認(rèn)排序順序是根據(jù)字符串unicode碼點
Array.prototype.values 返回一個新的Array Iteratorr對象 該對象包含數(shù)組每個索引的值