2 回答

TA貢獻1834條經驗 獲得超8個贊
為什么會產生結構不固定的情況?一般出現這種情況是數據結構設計不夠合理。
當然也可能是因為數據來源比較分散,這種情況下比較好的做法是為每種來源寫一個適配器轉換數據結構——當然,如果幾種數組結構的變化非常有規律,也可以用一個適配器來解決。

TA貢獻1801條經驗 獲得超8個贊
let data = [
{
id: 1,
price1: 5,
price2: 4
},
{
id: 2,
price1: 5,
price2: 4
}
]
let data1 = [
{
id: 1,
price: {
price1: 6
}
},
{
id: 2,
price: {
price1: 6
}
}
]
let data2 = [
{
id: 1,
price: {
price1: {
price2: 7
}
}
},
{
id: 2,
price: {
price1: {
price2: 7
}
}
}
]
function test (data, price) {
let keys = price.split(',').filter(key => key)
keys.forEach(key => {
let list = key.split('.').filter(key => key)
let last = list.pop()
data.forEach(item => {
let tmpList = list.map(cur => cur)
let cur
let d = item
while(cur = tmpList.shift()) {
d = d[cur]
}
d[last] = '¥' + d[last]
})
})
}
test(data, 'price1,price2')
test(data1, 'price.price1')
test(data2, 'price.price1.price2')
console.log(data, data1, data2)
添加回答
舉報