[英]How to specify array elements as property values in an object in JavaScript?
可以說我有一個數組
var array = ["lionel", "messi"];
我想使用該數組的元素的值作為對象中的屬性值。
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
}
我希望最后一個對象是
var obj = {
"first-name": "lionel",
"last-name": "messi"
}
如何在JavaScript中執行此操作? 還是有lodash函數可以做到這一點?
您只需分配這些屬性:
obj["first-name"] = array[0];
obj["last-name"] = array[1];
例:
var array = ["lionel", "messi"]; var obj = { "first-name": "cristiano", "last-name": "ronaldo" }; obj["first-name"] = array[0]; obj["last-name"] = array[1]; console.log(obj);
在ES2015 +中,您可以使用解構分配:
[obj["first-name"], obj["last-name"]] = array;
例:
var array = ["lionel", "messi"]; var obj = { "first-name": "cristiano", "last-name": "ronaldo" }; [obj["first-name"], obj["last-name"]] = array; console.log(obj);
在評論中,您說過:
但是如果我必須動態地執行該操作怎么辦? 如何遍歷數組/對象中的兩個?
如果您要按其位置將array
的條目分配給obj
的對象屬性, 請注意,對象屬性順序自ES2015起是新的,容易被誤解。
但是如果您的對象確實定義為:具有完全符合ES2015 +的JavaScript引擎, 則 :
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
};
...然后, Object.getOwnPropertyNames
將可靠地返回["first-name", "last-name"]
( 不保證Object.keys
會返回),因為:
是的,有很多警告。 所以您可以這樣使用:
Object.getOwnPropertyNames(obj).forEach((key, index) => {
obj[key] = array[index];
});
例:
var array = ["lionel", "messi"]; var obj = { "first-name": "cristiano", "last-name": "ronaldo" }; Object.getOwnPropertyNames(obj).forEach((key, index) => { obj[key] = array[index]; }); console.log(obj);
再次:這僅適用於完全符合ES2015 +的JavaScript引擎,並具有如上所示定義的對象。 getOwnPropertyNames
報告屬性的順序可能很復雜。 規范中的細節 。
這將起作用:
var array = ["lionel", "messi"]; var order = ["first-name", "last-name"]; var obj = { "first-name": "cristiano", "last-name": "ronaldo" } for(var i = 0; i < array.length; i++) { obj[order[i]] = array[i]; } console.log(obj);
除了Object.keys(obj)
部分,其他所有內容都是不言自明的。 它只是返回obj(`[“ first-name”,“ last-name”])鍵的數組,它獲取每個鍵並將它們分配給您的數組。
編輯:
另外,正如評論中所說的,您需要一個訂單數組。
您可以實現為:
function heteroCopy(obj, array) {
let keys = Object.keys(obj);
for (let i in keys) {
obj[keys[i]] = array[i];
}
return obj;
}
Javascript沒有像PHP這樣的關聯數組的概念。 您可以創建JSON(JavaScript對象表示法)。 並且請嘗試理解使用對象的概念。 不要使用對象,因為您想像數組一樣使用它。 JavaScript具有類的概念。 您可以創建具有成員名字,姓氏的類。 實例化它並分配您的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.