2017-08-15 149 views
1

我在VueJS 2.0开发一个小应用程序,其中我有一个数据集是这样的:映射数组

{"data": 
    [ 
     { 
      "id":8, 
      "salutation":"Mr", 
      "first_name":"Madhu", 
      "last_name":"Kela", 
      "number":"2343253455", 
      "mobile":"3252345435", 
      "email":"[email protected]", 
      "alt_email":null, 
      "address":"Mumbai BKC", 
      "city":"Mumbai", 
      "state":null, 
      "country":"India", 
      "profile":null, 
      "sectors_interested":"[\"Insurance\",\"Infrastructure\",\"Information Technology\",\"hevy machines\",\"Healtcare\"]", 
      "companies_interested":"[4]", 
      "interactions_count":11, 
      "client_interactions_count":0, 
      "company":[ 
       { 
        "id":7, 
        "name":"Reliance MF", 
        "address":"Mumbai BKC", 
        "city":"Mumbai", 
        "state":null, 
        "country":"India", 
        "type":"Investor", 
        "sub_type":"Mutual Fund", 
        "is_client":0, 
        "pivot":{ 
         "contact_id":8, 
         "company_id":7, 
         "created_at":"2017-07-01 17:07:08", 
         "updated_at":"2017-07-01 17:07:08" 
        } 
       } 
      ] 
     }, 
     { 
      "id":7, 
      "salutation":"Ms", 
      "first_name":"XYZ", 
      "last_name":"ABC", 
      "number":"1847171087", 
      "mobile":"8327523057", 
      "email":"[email protected]", 
      "alt_email":null, 
      "address":"Mumbai", 
      "city":"Mumbai", 
      "state":null, 
      "country":"India", 
      "profile":null, 
      "sectors_interested":"[\"Insurance\",\"Information Technology\",\"Infrastructure\",\"hevy machines\"]", 
      "companies_interested":"[6,4]", 
      "interactions_count":8, 
      "client_interactions_count":0, 
      "company":[ 
       { 
        "id":3, 
        "name":"Franklin Fun", 
        "address":"Mumbai", 
        "city":"Mumbai", 
        "state":null, 
        "country":"India", 
        "type":"Investor", 
        "sub_type":"Mutual Fund", 
        "is_client":0, 
        "pivot":{ 
         "contact_id":7, 
         "company_id":3, 
         "created_at":"2017-07-01 16:59:41", 
         "updated_at":"2017-07-01 16:59:41" 
        } 
       } 
      ] 
     } 
    ] 
} 

我想映射这些值是这样的:

return this.model.map(d => ({ 
    name: d.first_name + ' ' +d.last_name, 
    company: d.company[0].name, 
    email: d.email, 
    mobile: d.mobile, 
    profile: d.profile, 
    count: d.interactions_count ? d.interactions_count : d.client_interactions_count 
})) 

此外,你在代码中看到我想通过比较,即如果interactions_count是0我想和client_interactions_count地图,我无法从第一阵列参数得到的公司名称放置interactions_count,并与降count订购吧顺序无论它来自何方。帮我解决这个问题。谢谢。

+0

请确保您的代码示例匹配的变量名。 此外,你有没有试过只是转储'D'?你会看到,如果公司名称未定义。 –

+0

你不必做'this.modal.data',因为这个对象是在'model'变量中,你仍然有'data'。 – euvl

+0

@FranzSkuffka是的。 –

回答

2

const data = [ 
 
    { 
 
     "id":8, 
 
     "salutation":"Mr", 
 
     "first_name":"Madhu", 
 
     "last_name":"Kela", 
 
     "number":"2343253455", 
 
     "mobile":"3252345435", 
 
     "email":"[email protected]", 
 
     "alt_email":null, 
 
     "address":"Mumbai BKC", 
 
     "city":"Mumbai", 
 
     "state":null, 
 
     "country":"India", 
 
     "profile":null, 
 
     "sectors_interested":"[\"Insurance\",\"Infrastructure\",\"Information Technology\",\"hevy machines\",\"Healtcare\"]", 
 
     "companies_interested":"[4]", 
 
     "interactions_count":11, 
 
     "client_interactions_count":0, 
 
     "company":[ 
 
      { 
 
       "id":7, 
 
       "name":"Reliance MF", 
 
       "address":"Mumbai BKC", 
 
       "city":"Mumbai", 
 
       "state":null, 
 
       "country":"India", 
 
       "type":"Investor", 
 
       "sub_type":"Mutual Fund", 
 
       "is_client":0, 
 
       "pivot":{ 
 
        "contact_id":8, 
 
        "company_id":7, 
 
        "created_at":"2017-07-01 17:07:08", 
 
        "updated_at":"2017-07-01 17:07:08" 
 
       } 
 
      } 
 
     ] 
 
    }, 
 
    { 
 
     "id":7, 
 
     "salutation":"Ms", 
 
     "first_name":"XYZ", 
 
     "last_name":"ABC", 
 
     "number":"1847171087", 
 
     "mobile":"8327523057", 
 
     "email":"[email protected]", 
 
     "alt_email":null, 
 
     "address":"Mumbai", 
 
     "city":"Mumbai", 
 
     "state":null, 
 
     "country":"India", 
 
     "profile":null, 
 
     "sectors_interested":"[\"Insurance\",\"Information Technology\",\"Infrastructure\",\"hevy machines\"]", 
 
     "companies_interested":"[6,4]", 
 
     "interactions_count":8, 
 
     "client_interactions_count":0, 
 
     "company":[ 
 
      { 
 
       "id":3, 
 
       "name":"Franklin Fun", 
 
       "address":"Mumbai", 
 
       "city":"Mumbai", 
 
       "state":null, 
 
       "country":"India", 
 
       "type":"Investor", 
 
       "sub_type":"Mutual Fund", 
 
       "is_client":0, 
 
       "pivot":{ 
 
        "contact_id":7, 
 
        "company_id":3, 
 
        "created_at":"2017-07-01 16:59:41", 
 
        "updated_at":"2017-07-01 16:59:41" 
 
       } 
 
      } 
 
     ] 
 
    } 
 
]; 
 

 
const result = data.map((item) => { 
 
    return { 
 
    name: item.first_name + ' ' + item.last_name, 
 
    company: item.company[0].name, 
 
    email: item.email, 
 
    mobile: item.mobile, 
 
    profile: item.profile, 
 
    count: item.interactions_count ? item.interactions_count : item.client_interactions_count 
 
    }; 
 
}).sort((a, b) => b.count - a.count); 
 

 
console.log(result);

+0

有没有办法用'count'值按降序排序呢? –

+0

@Nitish库马尔肯定,只是修改了解决方案。 – kevguy

+0

谢谢。有效。 –