【问题标题】:Javascript Array of ObjectsJavascript对象数组
【发布时间】:2017-02-15 21:41:11
【问题描述】:

有人可以帮我完成这项任务吗:对于每个相同的 userId,我需要分别连接第一个标题和正文中的所有标题和正文。还必须删除键 'id'。

示例:

  var items = [
  {
   "userId": 1,
   "id": 1,
   "title": "sunt aut facere repellat provident occaecati excepturi ",
   "body": "quia et suscipit\nsuscipit recusandae consequunt rerum autem sunt rem eveniet architecto"
 },
 {
 "userId": 1,
 "id": 2,
 "title": "qui est esse",
 "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate"
 },
 {
 "userId": 2,
 "id": 11,
 "title": "et ea vero quia laudantium autem",
 "body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qu"
 },
 {
 "userId": 2,
 "id": 12,
 "title": "in quibusdam tempore odit est dolorem",
 "body": "itaque id aut majklh"
 },
 {
 "userId": 3,
 "id": 21,
 "title": "asperiores ea ipsam voluptatibus modi minima quia sint",
 "body": "repellat aliquid praesentium dolorem quo\nsed totam minus non      itaque\nnihil labore molestiae sunt dolor eveniet"
 },
 {
 "userId": 3,
 "id": 22,
 "title": "dolor sint quo a velit explicabo quia nam",
 "body": "eos qui et ipsum ipsam suscipit aut\nsed omnis non odio\nexpedita earum mollitia molestiae aut atque rem suscipit\nnam impedit esse"
 }];

需要成为:

  var items = [
  {
   "userId": 1,
   "title": "sunt aut facere repellat provident occaecati excepturi qui                                   est esse",
   "body": "quia et suscipit\nsuscipit recusandae consequunt rerum autem sunt rem eveniet architecto est rerum tempore vitae\nsequi sint nihil         reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate"
 },
 {
 "userId": 2,
 "title": "et ea vero quia laudantium autem in quibusdam tempore odit est dolorem",
 "body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qu itaque id aut majklh"
 },
 {
 "userId": 3,
 "title": "asperiores ea ipsam voluptatibus modi minima quia sint dolor sint quo a velit explicabo quia nam",
 "body": "repellat aliquid praesentium dolorem quo\nsed totam minus non itaque\nnihil labore molestiae sunt dolor eveniet eos qui et ipsum ipsam      suscipit aut\nsed omnis non odio\nexpedita earum mollitia molestiae aut atque rem suscipit\nnam impedit esse"
 }];

感谢您的帮助, 问候 莎拉

【问题讨论】:

  • 你试过什么?
  • 可以使用for(item in items){...}迭代对象,也可以使用delete items[item].id删除id属性。
  • 类似这样的东西 -> jsfiddle.net/a7em5jvq

标签: javascript arrays object


【解决方案1】:
 var items = [
         {
             "userId": 1,
             "id": 1,
             "title": "sunt aut facere repellat provident occaecati excepturi ",
             "body": "quia et suscipit\nsuscipit recusandae consequunt rerum autem sunt rem eveniet architecto"
         },
         {
             "userId": 1,
             "id": 2,
             "title": "qui est esse",
             "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate"
         },
         {
             "userId": 2,
             "id": 11,
             "title": "et ea vero quia laudantium autem",
             "body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qu"
         },
         {
             "userId": 2,
             "id": 12,
             "title": "in quibusdam tempore odit est dolorem",
             "body": "itaque id aut majklh"
         },
         {
             "userId": 3,
             "id": 21,
             "title": "asperiores ea ipsam voluptatibus modi minima quia sint",
             "body": "repellat aliquid praesentium dolorem quo\nsed totam minus non      itaque\nnihil labore molestiae sunt dolor eveniet"
         },
         {
             "userId": 3,
             "id": 22,
             "title": "dolor sint quo a velit explicabo quia nam",
             "body": "eos qui et ipsum ipsam suscipit aut\nsed omnis non odio\nexpedita earum mollitia molestiae aut atque rem suscipit\nnam impedit esse"
         }],
     items_new = null,
     usedIds = [];


 _.each(items, function (item) {
     if (!_.contains(usedIds, item.id)) {
         _.filter(items, function (subItem) {
             if (subItem.id != item.id &&
                 subItem.userId == item.userId
             ) {
                 item.title = item.title + ' ' + subItem.title;
                 item.body = item.body + ' ' + subItem.body;
                 usedIds.push(subItem.id);
             }
         });
     }
 });

 items_new = _.filter(items, function (item) {
     if (!_.contains(usedIds, item.id)) {
         return true;
     }
 });

 _.each(items_new, function (item) {
     delete item.id;
 });
 console.log(items_new);

https://jsfiddle.net/3me0rjpx/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多