2017-10-19 57 views
0

我想創建一個函數,返回一個新的對象與鍵值對。我從數組的第一個和最後一個元素中獲得鍵和值。我可以得到函數來返回組成鍵 - 值對的元素,但只要我將大括號中的數組元素包裝成通過函數返回對象,它就不起作用。問題是什麼?如何使用給定的鍵和值創建對象?

// Create an array 
var names = ["Apples", "Oranges", "Yummy", "Candy", "Plop"]; 

// Return an object with a key–value pair from the first and last element of an array 
function firstLast(array) { 
    var obj = { 
    array[0] + ": " + "'" + array[array.length - 1] + "'"; 
    }; 
    return obj; 
} 

console.log(firstLast(names)); 

回答

4

這是無效的語法。你需要的是:

var obj = { 
    [array[0]]: array[array.length - 1] 
}; 

這使用computed properties

另一種方法是:

var obj = {}; 
obj[array[0]] = array[array.length - 1]; 
+0

我今天瞭解到某事時,'{[VAR]:1}'一部分。非常酷。 – wscourge

+0

我明白了!謝謝。我完全不知道這個語法。 –

1

您可以使用方括號表示法來分配的價值,但我的初始後含有相同的答案@ Xufox的替代品。所以我想我會介紹一種不同的方法,它使用傳入函數的參數並通過移動和彈出該數組構建返回的對象。做同樣的工作只是一個不同的方式。

var names = ["Apples", "Oranges", "Yummy", "Candy", "Plop"]; 
 

 
function firstLast(array) { 
 
    return {[arguments[0].shift()]: arguments[0].pop()}; 
 
} 
 

 
console.log(firstLast(names));

相關問題