首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript中JSON对象数组由"Apple and Orange“改为"Apple”"Orange“

Javascript中JSON对象数组由"Apple and Orange“改为"Apple”"Orange“
EN

Stack Overflow用户
提问于 2021-01-22 10:30:39
回答 1查看 63关注 0票数 0

拥有从外部JSON源访问的以下json对象:

代码语言:javascript
复制
[
    {
        "Veg": "Potato",
        "Fruit": "Apple and Orange"
    },
    {
        "Veg": "Pumpkin",
        "Fruit": "Orange and Orange"
    },
    {
        "Veg": "Potato",
        "Fruit": "Banana"
    },
    {
        "Veg": "Onion",
        "Fruit": "Mango and Orange"
    }
]

想要改变水果部分需要帮助。目前是“水果A”和“水果B”。我需要去掉“和”,并将水果分开。

这就是我想要实现的输出。

代码语言:javascript
复制
[
{
    "Veg": "Potato",
    "Fruit": [
        "Orange",
        "Apple"      
        ]
},
{
    "Veg": "Pumpkin",
    "Fruit": [
        "Orange",
        "Orange"
    ]   
},
{
    "Fruit": [
        "Banana"            
        ]
      },
{
    "Veg": "Onion",
    "Fruit": [
        "Mango",
        "Orange"      
        ]
}
]

我试图通过使用split来实现这一点。然而,拆分现在是创建新的,而不是添加。

代码语言:javascript
复制
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];   
  }
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 10:55:26

不是直接更改food对象,而是通过在" and "上拆分并直接映射其余属性来创建一个新数组,其中Fruit值映射到数组

代码语言:javascript
复制
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)
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; }

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65838554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档