[英]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.