[英]map on javascript object - get the object keys
我需要像這樣的 map 和 object
let obj = {
a : { value : 5, meta: "sss" },
b : { value : 1, meta: "rrr" },
a : { value : 6, meta: "nnn" },
}`
像這樣獲得和 object
{ a: 5, b: 1, c:6}
我無法將“密鑰”作為字符串獲取。
我試過了:
let yyy = Object.keys(obj).map(function (key) {
return { key: obj[key].value };
});
但它會產生一個{key: 5}...
的“數組”(而我需要一個對象)......使用字符串“key”而不是鍵的名稱。
您可以獲得新 object 的條目和 map 的鍵和屬性value
。
let object = { a: { value: 5, meta: "sss" }, b: { value: 1, meta: "rrr" }, c: { value: 6, meta: "nnn" } }, result = Object.fromEntries(Object.entries(object).map(([key, { value }]) => [key, value]) ); console.log(result);
在下面試試這個:
在您的輸入中使用 Object.keys。
let obj = { 'a': {value: 5, meta: "sss"},
'b': {value: 1, meta: "rrr"},
'c': {value: 6, meta: "nnn"},
};
let output = {};
Object.keys(obj).map(function (item) {
output[item] = obj[item]['value']
});
console.log(output)
Output : { a: 5, b: 1, c:6}
你可以使用.reduce
let obj = { a: { value: 5, meta: "sss" }, b: { value: 1, meta: "rrr" }, c: { value: 6, meta: "nnn" }, } var res = Object.keys(obj).reduce((acc, elem)=>{ acc[elem] = obj[elem].value; return acc; },{}); console.log(res)
嘗試使用 reduce 而不是 map ..
const obj = {
a : { value : 5, meta: "sss" },
b : { value : 1, meta: "rrr" },
c : { value : 6, meta: "nnn" },
}
const res = Object.keys(obj).reduce( (res, key) => {
res[key] = obj[key].value
return res;
}, {});
console.log(res)
您可以使用reduce
function 來實現您的結果。
let result = Object.keys(obj).reduce((acc,k) => {
return {
...acc,
[k]:obj[k].value
};
},{})
console.log(result); // {"a":5,"b":1,"c":6}
我希望它有所幫助。
使用for..of
循環和解構值
let obj = {
a : { value : 5, meta: "sss" },
b : { value : 1, meta: "rrr" },
c : { value : 6, meta: "nnn" },
}
const data = Object.entries(obj);
let result={};
for(let [key, {value}] of data) {
result[key] = value;
}
console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.