拥有从外部JSON源访问的以下json对象:
[
{
"Veg": "Potato",
"Fruit": "Apple and Orange"
},
{
"Veg": "Pumpkin",
"Fruit": "Orange and Orange"
},
{
"Veg": "Potato",
"Fruit": "Banana"
},
{
"Veg": "Onion",
"Fruit": "Mango and Orange"
}
]想要改变水果部分需要帮助。目前是“水果A”和“水果B”。我需要去掉“和”,并将水果分开。
这就是我想要实现的输出。
[
{
"Veg": "Potato",
"Fruit": [
"Orange",
"Apple"
]
},
{
"Veg": "Pumpkin",
"Fruit": [
"Orange",
"Orange"
]
},
{
"Fruit": [
"Banana"
]
},
{
"Veg": "Onion",
"Fruit": [
"Mango",
"Orange"
]
}
]我试图通过使用split来实现这一点。然而,拆分现在是创建新的,而不是添加。
var food = JSON.parse(request.responseText);
for(let i = 0; i < food.length; i++){
let foodSplit = food[i].Fruit.split(' and ');
if(foodSplit.length > 0){
food[i].Fruit1 = foodSplit[0];
food[i].Fruit2 = foodSplit[1];
}
}谢谢
发布于 2021-01-22 10:55:26
不是直接更改food对象,而是通过在" and "上拆分并直接映射其余属性来创建一个新数组,其中Fruit值映射到数组
const response = {
responseText: `[{"Veg":"Potato","Fruit":"Apple and Orange"},{"Veg":"Pumpkin","Fruit":"Orange and Orange"},{"Veg":"Potato","Fruit":"Banana"},{"Veg":"Onion","Fruit":"Mango and Orange"}]`
}
const food = JSON.parse(response.responseText)
const mapped = food.map(({ Fruit, ...rest }) => ({
...rest,
Fruit: Fruit.split(" and "),
}))
console.log(mapped).as-console-wrapper { max-height: 100% !important; }
https://stackoverflow.com/questions/65838554
复制相似问题