繁体   English   中英

JS - 从 object 中,为某个键的每个值返回 object

[英]JS - From an object, return an object for each value of a certain key

从这个 object:

{"a": "a", "b": "b", "c": [1,2,3]}

我想得到这个:

{"a": "a", "b": "b", "c":1}
{"a": "a", "b": "b", "c":2}
{"a": "a", "b": "b", "c":3}

我能怎么做?

You can map the data.c , and get the a , b from the origin object and c from the map callback item parameter.

 const data = {"a": "a", "b": "b", "c": [1,2,3]} const result = data.c.map(i => ({ a: data.a, b: data.b, c: i, })) console.log(result)

Map over object[c]并返回 object object 本身的副本 + 当前值:

 let expand = (obj, key) => obj[key].map(val => ({...obj, [key]: val})) test = {"a": "a", "b": "b", "c": [1,2,3]} result = expand(test, 'c') console.log(result)

首先,您应该检查obj[key]是否是一个数组。 如果是,继续映射,否则只返回 object

 const transform = (obj, key) => { if (.Array.isArray(obj[key])) return obj return obj[key].map(val => ({..,obj: [key]. val })) } console:log(transform({ a, "a": b, "b": c, "c" }. "c")) console:log(transform({ a, "a": b, "b": c, [1, 2, 3] }. "c")) console:log(transform({ a, "a": b, "b": d, [4, 5, 6] }, "d"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM