当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何将json数组修改组成新的数组?

万喜
2024-08-14
var json1 = [
    {w:10,h:20,x:12,y:20,url:"..."},
    {w:20,h:30,x:15,y:15,url:"..."}
]

修改为新的json数组

[
    {coords: "x,y,x+w,y+h",type: "path",url: "..."},
    {coords: "x,y,x+w,y+h",type: "path",url: "..."}
]

所示coords的值是josn1里的x、y代表的值或者相加的值

共有3个答案

越涵衍
2024-08-14
json1.map(({ x, y, w, h, url }) => ({
  coords: `${x},${y},${x + w},${y + h}`,
  type: "path",
  url: url,
}));
闾丘英悟
2024-08-14
var json1 = [
  { w: 10, h: 20, x: 12, y: 20, url: "..." },
  { w: 20, h: 30, x: 15, y: 15, url: "..." }
];
const resultList = [];
json1.forEach(item => {
  const coords = `${item.x},${item.y},${item.x + item.w},${item.y+item.h}`;
resultList.push({
   coords,
   type: "path",
   url: item.url
})
})
console.log(resultList)

[
    {
        "coords": "12,20,22,40",
        "type": "path",
        "url": "..."
    },
    {
        "coords": "15,15,35,45",
        "type": "path",
        "url": "..."
    }
]
宋育
2024-08-14

将JSON数组修改组成新的数组通常涉及到解析JSON数据,然后根据需要进行操作,最后可能需要转换成新的JSON格式。以下是一个使用JavaScript示例,展示如何将JSON数组修改组成新的数组:

假设我们有一个如下的JSON数组:

[
  {"id": 1, "name": "Alice", "age": 24},
  {"id": 2, "name": "Bob", "age": 30},
  {"id": 3, "name": "Charlie", "age": 20}
]

现在我们想要创建一个新的JSON数组,其中包含每个人的名字和年龄,但是"Alice"的名字要变形为"Al",而且只取小于等于25岁的人的信息。

以下是实现这个过程的步骤:

解析JSON数组为JavaScript数组。
对数组进行遍历。
检查每个人的年龄是否小于等于25。
如果年龄符合条件,修改其名字(或者添加到新的数组中)。
建立新的对象并添加到新的数组。


// 原始JSON数组
let jsonArray = `[
  {"id": 1, "name": "Alice", "age": 24},
  {"id": 2, "name": "Bob", "age": 30},
  {"id": 3, "name": "Charlie", "age": 20}
]`;

// 解析JSON数组,并创建新的数组
let newArray = JSON.parse(jsonArray)
  .filter(person => person.age <= 25) // 只保留25岁及以下的人
  .map(person => ({ name: person.name.slice(0, 2), age: person.age })); // 修改名字, 并保留年龄

// 输出新的JSON数组
console.log(JSON.stringify(newArray));
这段代码将输出如下新的JSON数组:

[{"name": "Al", "age": 24}, {"name": "Cha", "age": 20}]

JSON数据通常不能直接通过添加或修改来改变,它是由键值对组成的字符串表示形式,因此首先需要将其解析成一个JavaScript对象,然后才能进行修改。

 类似资料:
  • 问题内容: 我想改写JavaScript中的元素数组,如下所示: 问题答案: 使用现代版本的Fisher-Yates随机播放算法: ES2015(ES6)版本 但是请注意,,将变量与解构分配交换会导致严重的性能损失。 使用

  • 可以使用索引值来修改JSON 数组的值。如: myObj.sites[1] = "Github";

  • 问题内容: 我有一个想要转换为纯JavaScript数组的json数组: 这是我的json数组: 如何将其转换为普通的javascript数组,如下所示: 问题答案: 已经是JS对象(不是JSON)。但是,您可以在这里: 编辑:将 元素插入数组中的正确位置。谢谢@RoToRa 也许一开始不创建此类对象会更容易。它是如何创建的?

  • 问题内容: 我正在使用Sencha Touch(ExtJS)从服务器获取JSON消息。我收到的消息是这个: 我的问题是我无法解析此JSON对象,因此我可以使用每个计数器对象。 我正在尝试像这样完成: 我究竟做错了什么 ?谢谢! 问题答案: Javascript具有针对字符串的内置JSON解析,我想这就是您拥有的: 在您的示例中使用此代码将是: 编辑 :for循环的使用中有一个错误(我在初读时就错过

  • 想要的结果: ["123","456","789","555"] 其实我感觉我自己取的方法,有点乱,用了两层map遍历,然后又把item.rec_id push到一个新数组,想看看 有没有更好的方法

  • 问题内容: 我的脚本向我返回了一个数组(JSON数组),如下所示: 我需要打印“ 键 / 对” 值,就像从“ 地图”中进行 打印一样,如下所示: 我收到的JSON格式是否可能与常规JSON格式不同? 我当前的代码基于 Selenium ,它使用 Java脚本 读取性能统计信息,如下所示: _JavaDoc中_的提到了以下情况: 如果脚本具有返回值(即,如果脚本包含return语句),则将执行以下步

  • 问题内容: 我需要将JSON对象字符串转换为JavaScript数组。 这是我的JSON对象: 我想拥有: 我该如何实现? 问题答案: var json_data = {“2013-01-21”:1,”2013-01-22”:7}; var result = [];

  • 问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 并致电: 注意: _JSON对象现在是大多数现代Web浏览器(IE 8及更高版本)的一部分。