簡體   English   中英

在不知道其鍵的情況下操作對象值

[英]manipulate the object value without knowing its key

我有一個對象 obj 並且我想操縱它的值,但我不想編寫硬編碼的值,如下所示,是否有更好的替代方法來替代下面的方法

 let obj = {a:{x:0}, b:{y:0}}; obj.a[Object.keys(obj.a)[0]] = 1; console.log(obj);

我創建了一個通用函數,您可以在其中設置 key 的值,而無需知道內部對象的屬性名稱。

您可以使用所需的鍵和值調用該函數並獲得所需的結果。

 let obj = {a:{x:0}, b:{y:0}}; function assignValue(key, value) { obj[key][Object.keys(obj[key])] = value; } assignValue('a', 1) console.log(obj) let objMultipleInnerKeys = {a:{x:0, z:2}, b:{y:0}}; function assignValueMultipleInnerKeys(key, innerKey, value) { objMultipleInnerKeys[key][innerKey] = value; } assignValueMultipleInnerKeys('a', 'x', 1) console.log(objMultipleInnerKeys)

我想你想遍歷它們並為 x、y 或任何鍵設置不同的值

 let obj = { a: { x: 0 }, b: { y: 0 } }; keys = Object.keys(obj) for (let i = 0; i < keys.length; i++) { key2 = Object.keys(obj[keys[i]])[0]; // instead of some_value inject an array of values obj[keys[i]][key2] = 'some_value'; } console.log(obj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM