javascript - 重新映射 json 对象并将它们推送到一个数组中

标签 javascript angular typescript

我正在重新映射从一个完美运行的 API 接收到的 JSON 对象。问题不是插入单个数组 searchResultsReFormat,而是在控制台中多次读取同一行但具有不同的值。

  searchResultsReFormat: any = [];
  this.searchResults.map(result => {
                const customer  = result.customer
                const meals = result.meals
                const newResults = [{
                  firstName : customer.firstName,
                  lastName : customer.lastName,
                  grade: this.gradeName,
                  meals: [meals]
                }]
                console.log(newResults)
                this.searchResultsReFormat = newResults
              })

enter image description here

但所有这些都应该被分组在一个数组searchResultsReFormat 中,当展开时,数据将会显示

最佳答案

map 实际上是根据提供的回调 转换每个值返回一个新数组

你不需要插入或做事,你只需要:

  • 将map的结果赋值给想要的值。
  • return 在回调中转换后的值。

//赋值在这里

this.searchResultsReFormat = this.searchResults.map(result => {
  //                                                ^--- callback here
  const customer  = result.customer;
  const meals = result.meals;
  const newResults = [{
    firstName : customer.firstName,
    lastName : customer.lastName,
    grade: this.gradeName,
    meals: [meals]
  }];
  return newResults; // <-- return here.
});

关于javascript - 重新映射 json 对象并将它们推送到一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57376982/

相关文章:

javascript - 筛选元素并仅选择带有文本的元素

javascript - 在 javascript/typescript 中向 Date 添加天数会给出完全错误的日期

javascript - HTML5 Range 功能在移动设备上损坏

javascript - 如果将对象作为参数传递给另一个文件中的函数,原始对象会改变吗?

angular - 如何使用服务和可观察的组件之间共享数据?

angular - "Canvas is not a constructor"错误 - 将 Fabric JS 与 Angular 6 一起使用

javascript - typescript 提取字符串的一部分以进一步处理

javascript - 基于路线显示元素 - Angular

ecmascript-6 - 如何修复嵌入模板上的任何指令未使用的属性绑定(bind) ng-forOf?

typescript - 如何在静态类方法中引用提供者?