簡體   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