簡體   English   中英

在不知道對象鍵的情況下映射對象的對象 - React Native

[英]Map Object of Objects without knowing Object Key - React Native

我需要從對象中的每個單獨對象中獲取“primarySprayCanRGB”和“primarySprayCanHighLightRGB”並將它們添加到數組中。 但我不知道各個對象鍵。 => 油漆名稱不同。 我在 React Native 工作

例如得到:[["#000000", "#131313"],["#292b2d", "#7b7d80"],["#6b0913", "#bc3038"],...]

我到目前為止的代碼,用於獲取要添加到數組中的數據,但代碼只返回第一個 oibject,因為 id 沒有遞增:

//data == object.paints
//loadinga == false => when data is ready to use
{!loadinga && data.map((object,id) => console.log(object[id].primarySprayCan.primarySprayCanRGB))}

鏈接到 JSON 文件:

https://cdn.imagin.studio/getPaintSwatches?customer=imagin&make=tesla&paints=pbsb,pmng,ppmr,ppsb,ppsw

您可以使用Object.values()函數映射paints對象的值。 然后選擇要從中提取的值。

Object.values(data).map({ primarySprayCan } => {
    return [ primarySprayCan['primarySprayCanRGB'], primarySprayCan['primarySprayCanHighLightRGB'] ]
});

你可以這樣做

 const extractData = data => Object.values(data.paints).map(({primarySprayCan}) => [primarySprayCan.primarySprayCanRGB, primarySprayCan.primarySprayCanHighLightRGB]) const data = { "make": "tesla", "paints": { "pbsb": { "paintId": "pspc0004", "paintDescription": "", "primarySprayCan": { "sprayCanId": "spc0004", "paintType": "uni", "primarySprayCanRGB": "#000000", "primarySprayCanHighLightRGB": "#131313", "colourCluster": "black" } }, "pmng": { "paintId": "pspc0239", "paintDescription": "", "primarySprayCan": { "sprayCanId": "spc0239", "paintType": "mic", "primarySprayCanRGB": "#292b2d", "primarySprayCanHighLightRGB": "#7b7d80", "colourCluster": "grey" } }, "ppmr": { "paintId": "pspc0107", "paintDescription": "", "primarySprayCan": { "sprayCanId": "spc0107", "paintType": "mic", "primarySprayCanRGB": "#6b0913", "primarySprayCanHighLightRGB": "#bc3038", "colourCluster": "red" } }, "ppsb": { "paintId": "pspc0266", "paintDescription": "", "primarySprayCan": { "sprayCanId": "spc0266", "paintType": "mic", "primarySprayCanRGB": "#101b47", "primarySprayCanHighLightRGB": "#254e9d", "colourCluster": "blue" } }, "ppsw": { "paintId": "pspc0109", "paintDescription": "", "primarySprayCan": { "sprayCanId": "spc0109", "paintType": "pearl", "primarySprayCanRGB": "#b4b4b4", "primarySprayCanHighLightRGB": "#b4b4b4", "colourCluster": "grey" } } } } console.log(extractData(data))

暫無
暫無

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

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