当前位置: 首页 > 编程笔记 >

JavaScript 使用映射重新格式化数组中的对象

堵雅健
2023-03-14
本文向大家介绍JavaScript 使用映射重新格式化数组中的对象,包括了JavaScript 使用映射重新格式化数组中的对象的使用技巧和注意事项,需要的朋友参考一下

示例

Array.prototype.map():返回一个数组,并在原始数组中的每个元素上调用提供的函数。

以下代码示例获取人员数组,并创建一个新数组,其中包含具有“ fullName”属性的人员

var personsArray = [
  {
    id: 1,
    firstName: "Malcom",
    lastName: "Reynolds"
  }, {
    id: 2,
    firstName: "Kaylee",
    lastName: "Frye"
  }, {
    id: 3,
    firstName: "Jayne",
    lastName: "Cobb"
  }
];

// 返回由全名组成的新对象数组。
var reformatPersons = function(persons) {
  return persons.map(function(person) {
    // 创建一个新对象来存储全名。
    var newObj = {};
    newObj["fullName"] =person.firstName+ " " + person.lastName;

    // 返回我们的新对象。
    return newObj;
  });
};

现在reformatPersons(personsArray),我们可以呼叫并收到一个仅包含每个人全名的新数组。

var fullNameArray = reformatPersons(personsArray);
console.log(fullNameArray);
///输出
[
  { fullName: "Malcom Reynolds" }, 
  { fullName: "Kaylee Frye" },
  { fullName: "Jayne Cobb" }
]

personsArray 其内容保持不变。

console.log(personsArray);
///输出
[
  {
    firstName: "Malcom",
    id: 1,
    lastName: "Reynolds"
  }, {
    firstName: "Kaylee",
    id: 2,
    lastName: "Frye"
  }, {
    firstName: "Jayne",
    id: 3,
    lastName: "Cobb"
  }
]
           

 类似资料:
  • 问题内容: 我有一些像这样的结构化JSON数据。假设这是可以通过以下方式互换的: 我需要它看起来像这样,重新映射到,并以与结果: 最明显的方法是这样的: 一切都很好,但如果数组中有200,000个对象怎么办?这是很多处理开销。 有没有更有效的方法来重新映射键名? 可能不会遍历整个对象数组?如果您的方法更有效,请提供证明/参考。 问题答案: 正如我在评论中已经提到的那样,如果可以对对象的值进行某些假

  • 我有一个POJO旅行者,变量为字符串name,字符串city。我有一个字符串数组,比如 我想要一张地图,上面有名字和城市列表。 我无法给旅行者绘制地图。有没有一种方法可以为旅行者绘制地图,并将其名称作为重点和城市列表。

  • 我正在从后端获取Json对象,如下所示。 但是我想把这个对象转换成如下的对象数组格式。 有没有办法实现转换这种格式,谢谢。

  • 我刚刚发现了这个特性: Map:Map对象是简单的键/值映射。 映射对象可以按插入顺序迭代其元素。Map对象必须使用哈希表或其他机制来实现,这些机制平均提供的访问时间与集合中的元素数成次线性关系。本地图对象规范中使用的数据结构仅用于描述地图对象所需的可观察语义。它并不打算成为一个可行的实施模式。 …对我来说仍然像是一个对象,所以很明显我错过了什么。 为什么JavaScript获得了一个(支持良好的

  • 因此,我决定尝试一下Nashorn,因为我有一个用例,让用户能够为Java应用程序编写自己的过滤器,这将非常有用。 我几乎可以让一切工作端到端(网页与文本区域- 我最初认为使用JSON相对简单。stringify,但显然生活并不那么方便。是否有基于javascript本机/库的方法来获取函数的字符串表示并将口红应用于我的用户生成的猪? 戴夫

  • 我想把下面的数组转换成一个稍微修改的对象(见下文)。我也在尝试使用扩展运算符,但还没有弄清楚如何做到这一点。我试图避免使用lodash(用于教育目的)。 null