我使用郵遞員呼叫我的 api,這是回應。
我想將此物件鍵修改為“id”,值是自動增量(1,2,3 ....),原始鍵的值(“amount 100~1000”:2)為“count”,就像期望的那樣下面下來。
data = {
"amount 100~1000": 2,
"amount 1001~2000": 4,
"amount 2001~3000": 1,
"amount 3001~4000": 2,
}
這是我嘗試過的,我真的不知道如何使用 for 回圈來做到這一點(或者也許 forEach 是更好的方法?)
const x = Object.values(data[0])
let id = 1;
let count;
let arr = [];
for (let index = 0; index < x.length; index ) {
id
const obj = { id: index }
arr.push(obj)
}
console.log(arr);// [ { id: 0 }, { id: 1 }, { id: 2 }, { id: 3 } ]
期望得到:
{
"id":1, // amount 100~1000
"count": 2,
},
{
"id":2, // amount 1001~2000
"count": 4,
},
{
"id":3, // amount 2001~3000
"count": 1,
},
.
.
.
uj5u.com熱心網友回復:
重新編輯:在評論和后續問題之后,我添加了一個解決方案,該解決方案將保持陣列中的值按輸入資料的鍵排序。我不確定這是您的意圖,但只是為了完整起見。
const input = data[0];
const keys = Object.keys(input);
const output = [];
keys.sort((a, b) => a.localeCompare(b, { numeric: true })).forEach((key, idx) => {
output.push({id: idx 1, count: input[key]})
})
console.log(output);
uj5u.com熱心網友回復:
這是我對您的問題的解決方案:
let data = {
"amount 100~1000": 2,
"amount 1001~2000": 4,
"amount 2001~3000": 1,
"amount 3001~4000": 2,
}
let list = []
let dataValuesList = Object.values(data)
for(let i = 1; i <= dataValuesList.length;i ){
list.push({
id: i,
count: dataValuesList[i-1]
})
}
console.table(list)
uj5u.com熱心網友回復:
您可以使用 Javascript Object 內置函式Object.keys()或Object.values簡單地將它們回圈在一起來實作這一點:
const data = {
"amount 100~1000": 2,
"amount 1001~2000": 4,
"amount 2001~3000": 1,
"amount 3001~4000": 2,
}
const modifiedData = []
for (let i = 0; i < Object.keys(data).length; i ) {
modifiedData.push({id: i 1, count: Object.values(data)[i] })
}
console.log(modifiedData)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/529023.html
下一篇:做嵌套for回圈的更簡單方法?
