我有一個物件,它有一些值,如“1”、“5”、“6”等,并將“data1”、“data2”、“data3”等作為物件參考。
我正在嘗試映射這個物件,但它不是映射和尋找 id。這是我正在談論的物件:
[
{
"1": "data1",
"5": "data2",
"6": "data3"
}
]
這是我需要的物件:
[
{
id: "0",
ids: "1",
data: "data1"
},
{
id: "1",
ids: "5",
data: "data2"
},
{
id: "2",
ids: "6",
data: "data3"
},
}
]
有沒有辦法從 JavaScript 的回應中自動解決這個問題?
我在我的 React 應用程式中有這個回應,特別是使用 Refine 框架(refine.dev),當我嘗試映射這個回應時,它正在尋找參考。我在這里嘗試了所有可能的答案:物件的映射函式(而不是陣列) ,但我的情況沒有運氣。
uj5u.com熱心網友回復:
也許令人困惑的部分是陣列中有一個物件:
const arr = [
{
"1": "data1",
"5": "data2",
"6": "data3"
}
]
res = Object.entries(arr[0]).map( ([ids,data],index) => ({
id: index,
ids,
data
}) )
console.log(res)
uj5u.com熱心網友回復:
在物件上使用 for...in 怎么樣。我不確定您的起始陣列中是否會有超過 1 個物件,但如果您將物件拉出,您可以迭代鍵值。
const startingData = [
{
"1": "data1",
"5": "data2",
"6": "data3"
}
];
const objectToLoop = startingData[0];
const endingData = [];
let i = 0;
for(const entry in objectToLoop){
let itemToAdd = {
id: i,
ids: entry,
data: objectToLoop[entry]
};
endingData.push(itemToAdd);
i ;
}
console.log(endingData);
uj5u.com熱心網友回復:
let obj = {
"1": "data1",
"5": "data2",
"6": "data3"
};
const keys = Object.keys(obj);
let resultArray = [];
for (let i = 0; i < keys.length; i ) {
const tempObj = {
id: i,
ids: keys[i],
data: obj[keys[i]]
};
resultArray.push(tempObj);
}
console.log(resultArray);
uj5u.com熱心網友回復:
const sample = {
"1": "data1",
"5": "data2",
"6": "data3"
};
function init(input) {
let result = [];
const keys = Object.keys(input);
for (let i = 0; i < keys.length; i = 1) {
const label = keys[i];
const value = input[label];
result = [
...result,
{
id: `${i}`,
ids: `${label}`,
data: `${value}`,
}
];
}
return result;
}
console.log(init(sample));
uj5u.com熱心網友回復:
const test = [
{
"1": "data1",
"5": "data2",
"6": "data3"
}
];
let result = [];
Object.entries(test[0]).forEach(([key, value], index) => {
result.push({
id: index,
ids:key,
data: value
});
});
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436811.html
標籤:javascript 数组 反应 json
