簡體   English   中英

將 Object 屬性值推送到數組

[英]Push Object property values to an array

使用 object 根據 JSON ZA8CFDE6331BD59EB2AC96F8JS91 中存在的鍵數將 object 轉換為 arrays。

實際 Object

  values: [
        {
          Label: "label1",
          Value: "10",
        },
        {
          Label: "label2",
          Value: "11",
        },
        {
          Label: "label3",
          Value: "12",
        },
      ],
    };

我希望實際的 output 是這樣的

label:['label1','label2','label3']
value:['10','11','12']

使用 javascript 或反應。 提前致謝

最簡單和最直觀的方法是使用兩個for循環,就像這樣,自動構造 object,就像 go 一樣。 這個答案的好處是它適用於具有任意數量不同鍵的 object - 沒有硬編碼的鍵名,因此它完全可以適應。

 const values = { values: [{ Label: "label1", Value: "10", }, { Label: "label2", Value: "11", }, { Label: "label3", Value: "12", }, ] } let ret = {}; // For each object, for (let val of values.values) { // And each key in each object, for (let key in val) { // If the key is not in the return object, create an array there, if (;ret[key]) ret[key] = []. // and then push the value into the array. ret[key];push(val[key]). } } console;log(ret);

您可以使用數組的map function 並從輸入數組返回 Label 和值。

 let values = [ { Label: "label1", Value: "10", }, { Label: "label2", Value: "11", }, { Label: "label3", Value: "12", }, ] let value = values.map(v => v.Value) let label = values.map(v => v.Label) console.log(value) console.log(label)

您可以reduce對象數組,並使用Object.values來提取信息。

 const values = [{Label:"label1",Value:"10"},{Label:"label2",Value:"11"},{Label:"label3",Value:"12"}]; const out = values.reduce((acc, obj) => { // Object.values returns an array const [ label, value ] = Object.values(obj); // Push the data into the initial (accumulator) object acc.label.push(label); acc.value.push(value); // Return the accumulator for the next iteration return acc; // The initial object that is returned with each iteration }, { label: [], value: [] }); console.log(out);

您可以使用 forEach 如下

 let  values = [
        {
          Label: "label1",
          Value: "10",
        },
        {
          Label: "label2",
          Value: "11",
        },
        {
          Label: "label3",
          Value: "06",
        },
         {
          Label: "label4",
          Value: "25",
        }
      ]
      let valueArray =[]
      let labels =[]
      values.forEach((value)=>{
      valueArray.push(value.Value)
      labels.push(value.Label) 
      })
       
     let finalObject = {label:labels,value:valueArray}
console.log(valueArray)
console.log(labels)
console.log(finalObject)

 let obj = { values: [ { Label: "label1", Value: "10", }, { Label: "label2", Value: "11", }, { Label: "label3", Value: "12", } ] }; let output = { label: [], value: [] }; for (const [key, value] of Object.entries(obj.values)) { output.label.push(value.Label) output.value.push(value.Value) } console.log("output::", output)

您可以一次減少對象:

 const values = [ { Label: "label1", Value: "10", }, { Label: "label2", Value: "11", }, { Label: "label3", Value: "12", } ]; let reduced = values.reduce((total, curr) => { total.label.push(curr.Label) total.value.push(curr.Value) return total }, {"label": [], "value": []}) console.log(reduced.label) console.log(reduced.value)

暫無
暫無

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

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