2017-04-18 203 views
2

ES6非常新穎。 在ES5我可能會做這樣的事情ES6陣列初始化

function newArray(){ 
    var data = []; 
    for(var i = 0; i < 5; i++){ 
    data[i] = "test data " + i; 
    } 
    return data; 
} 

x = newArray() 

我怎麼會在ES6做到這一點?我已經得到了以下是錯誤的

getData =() => ({ 
    let data = Array.from(new Array(5), (x, i) => "test data " + i) 
    return { 
     data 
    } 
}) 
+0

有什麼錯誤? –

+0

意外令牌^讓數據。這是我的ES6語法錯誤。不知道該怎麼辦 – Rory

+1

問題出在'=>'......之後的外層'()'... with()使{}成爲對象字面量,這意味着對於對象字面量,您的語法無效 –

回答

1

在ES6它應該是這樣的:

const data = Array.from(new Array(5), (x, i) => "test data " + i); 
 
// if you want to return an object with the field data mapped to your array 
 
const getData2 =() => ({ data }); 
 
console.log(getData2());

+0

OP似乎想'getData'返回一個對象...不知道爲什麼。 – evolutionxbox

2

創建錯誤的函數ES6

getData =() =>{ 
 
    let data = Array.from(new Array(5), (x, i) => "test data " + i) 
 
    return { 
 
     data 
 
    }; 
 
} 
 
console.log(getData())

您可以使用fillmap方法填寫array

//arr.fill(value, start, end) 
 
getData =() =>{ 
 
    let data = new Array(5).fill(0).map((a,i)=>"test data " + i); 
 
    return { 
 
     data 
 
    }; 
 
} 
 
console.log(getData())

+1

謝謝,是的錯字 – Rory

+0

@Rory,不客氣。 –

+0

@Rory,不要忘記接受一個答案,以幫助其他人。 –