javascript - 如何使用来自 REST API 的响应填充对象数组,其中每个对象内部都有一个数组?
问题描述
我连续大约一个小时都无法在谷歌上找到正确的解决方案,所以我从 API 中得到了如下所示的响应:
[
{
"Name": "name1",
"Title": "Name One",
"Children": [
{
"Name": "Name 1.1",
"Title": "Name one point one"
},
]
我需要它来适应这种“模具”,以便数据适合:
{
title: 'Name One',
value: 'name1',
key: '1',
children: [
{
title: 'Name one point one',
value: 'Name 1.1',
key: 'key1',
},
我正在尝试使用 foreach 来实现这一点,但它没有按预期工作,因为我需要在一个 foreach 实例中完成这一切。这是我尝试过的(vue2):
created() {
getData().then(response => {
const formattedResponse = []
response.forEach((el, key) => {
formattedResponse.title = response.Title
formattedResponse.name = response.Name
formattedResponse.children = response.Children
})
})
解决方案
map
在主数组上使用并使用解构赋值children
键提取属性,并重新标记它们,然后对数组执行完全相同的操作。然后返回更新的对象数组。
const data=[{Name:"name1",Title:"Name One",Children:[{Name:"Name 1.1",Title:"Name one point one"}]},{Name:"name2",Title:"Name Two",Children:[{Name:"Name 1.2",Title:"Name one point two"}]}];
const result = data.map((obj, key) => {
const { Title: title, Name: value } = obj;
const children = obj.Children.map(obj => {
const { Title: title, Name: value } = obj;
return { title, value, key: (key + 1).toString() };
});
return { title, value, children };
});
console.log(result);
推荐阅读
- excel - 从字典中提取数据
- ios - 从 OpenGL 移植到 MetalKit - 投影矩阵(?)问题
- swiftui - 运行时错误:前提条件失败:属性未能设置初始值
- c - C 函数:为什么我的变量在设置后立即更改值?
- kubernetes - Kubeclt 错误(v1.14 到 v1.16):从 v1.14 迁移到 v1.16 时出错
- c# - c# - 最初加载到表单中时如何处理多种位图格式?
- laravel - 是否可以建立运行时数据库连接并在模式、数据库和模型中使用它而不影响配置?
- ios - 无法读取 JSON 数据
- javascript - 如何将 url 时间字符串输出为文本而不是视频?
- flask - 使用 nginx 和 uwsgi 在 AWS ECS 上扩展烧瓶应用程序