ES6數組新增方法


ES6數組新增方法

  • Array.from
作用: 把類數組(獲取一組元素、arguments…) 對象轉成數組
個人觀點: 具備 length這個東西,就靠譜
1、字符串轉數組(個人感覺有些類似於arr.split("")):
let str = "hello";
console.log(Array.from(str));	//Array(5) ["h", "e", "l", "l", "o"]

2、將類數組對象轉換為真正數組:
let arrList = {
    0: 'yang', 
    1: '27',
    2: '男',
    3: ['wang','ling','huang'],
    'length': 4
}
let arr = Array.from(arrList)
console.log(arr) // Array(4) ['yang','27','男',['wang','ling','huang']]

PS:對於第二種,如果將最后的length去掉,那將是一個length為0的空數組

如果將代碼再改一下:
let arrList = {
    'name': 'yang', 
    'age': '27',
    'sex': '男',
   	'fre': ['wang','ling','huang'],
    'length': 4
}
let arr = Array.from(arrList)
console.log(arr) // Array(4) [undefined, undefined, undefined, undefined]
會發現結果是長度為4,元素均為undefined的數組

由此可見,要將一個類數組對象轉換為一個真正的數組,必須具備以下條件:
1、該類數組對象必須具有length屬性,用於指定數組的長度。如果沒有length屬性,那么轉換后的數組是一個空數組
2、該類數組對象的屬性名必須為數值型或字符串型的數字

  • Array.of() 把一組值,轉化數組
let arr = Array.of('apple','banana','orange');
console.log(arr);	
輸出:['apple','banana','orange']
  • arr.find() 查找數組內元素,找到第一個符合條件的數組成員,返回該成員的值,如果沒有找到,返回undefined
例子:
let arr = [0,1,2,3,4,5];
let result = arr.find(function(val, index, arr){
	return val > 1;		// 數組內大於1的為:2,3,4,5
						// 但是我們返回的是符合條件的第一個:2
},this)
console.log(result);	// 2

  • arr.findIndex() 查找數組內元素,找到第一個符合條件的數組成員,返回該成員的下標(index), 沒找到返回-1
例子:
let arr = ["yang", "wang", "ling"];
let result = arr.findIndex(function(val, index, arr){
	return val == "wang";		// 查找到的字符串"wang"下標為:1
},this)
console.log(result);	// 1
  • arr.fill 填充
array.fill(value, start, end)
參數	描述
value	必需。填充的值。
start	可選。開始填充位置。
end	可選。停止填充位置 (默認為 Array.length)

1、只傳入一個值(填充值),那將覆蓋所有數組內的內容
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob");
輸出:Runoob,Runoob,Runoob,Runoob

2、傳入三個參數(填充值,起始位置,結束位置),那將把填充值替換到起始位置和結束位置之間
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob", 2, 4);
輸出:Banana,Orange,Runoob,Runoob

在ES2016里面新增:

arr.indexOf()	// 查找指定元素是否存在,如果存在,返回下標,如果不存在返回-1
let arr = [“yang”, “wang”,“wang”, “ling”];
console.log(arr.indexOf(“yang”))	// 0

arr.includes()	// 查找指定元素是否存在,如果存在,返回true,如果不存在返回false

str.includes()	// 查找指定元素是否存在,如果存在,返回true,如果不存在返回false

例子(字符串類似):
let arr = [“yang”, “wang”,“wang”, “ling”];
console.log(arr.includes(“yang”))	// true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM