2017-04-18 160 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,不要忘记接受一个答案,以帮助其他人。 –