ale*_*lex 3 javascript javascript-objects ecmascript-6
我需要映射这样的对象
let obj = {
a : { value : 5, meta: "sss" },
b : { value : 1, meta: "rrr" },
a : { value : 6, meta: "nnn" },
}`
Run Code Online (Sandbox Code Playgroud)
像这样获得并反对
{ a: 5, b: 1, c:6}
Run Code Online (Sandbox Code Playgroud)
我无法获取字符串形式的“密钥”。
我试过了:
let yyy = Object.keys(obj).map(function (key) {
return { key: obj[key].value };
});
Run Code Online (Sandbox Code Playgroud)
但它会生成一个“数组”(虽然我需要一个对象),其中包含{key : 5}... 字符串“key”而不是键的名称。
你可以使用.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)Run Code Online (Sandbox Code Playgroud)
您可以获取条目并映射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);Run Code Online (Sandbox Code Playgroud)