鍍金池/ 問答/Java  HTML/ JSON數(shù)據(jù)轉(zhuǎn)換問題

JSON數(shù)據(jù)轉(zhuǎn)換問題

var json = [
    {"id":"1","tagName":"apple"},
    {"id":"2","tagName":"orange"},
    {"id":"3","tagName":"banana"},
    {"id":"4","tagName":"watermelon"},
    {"id":"5","tagName":"pineapple"}
];

上面這段代碼怎么轉(zhuǎn)換為數(shù)組,
id = [1,2,3,4,5]
tagName = ["apple","orange","banana","watermelon","pineapple"]

回答
編輯回答
懶洋洋

可以參考Laravel框架的helper函數(shù)array_pluck():
圖片描述

2017年8月10日 11:48
編輯回答
雨蝶

簡單版

var id = json.map(v=>v.id);
var tagName = json.map(v=>v.tagName);

封裝版

function jsonToArr(arr,key){
  return arr.reduce((sum,value)=>{
      for(var j in key){
        sum[j].push(value[j]);
      }
      return sum;
    },key)
}
console.log(jsonToArr(json,{"id":[],"tagName":[]}))//{"id":["1","2","3","4","5"],"tagName":["apple","orange","banana","watermelon","pineapple"]}
2018年6月15日 18:10
編輯回答
孤客
        function jsonToArray(json){
            var keys = Object.keys(json[0]),res=new Object();
            keys.forEach(function (t) {
                res[t]=[];
            });
            json.forEach(function (t) {
                keys.forEach(function (k) {
                    res[k].push(t[k]);
                })
            });
            return res;
        }
        

打印結(jié)果:{id: Array(0), tagName: Array(0)}id: (5) ["1", "2", "3", "4", "5"]tagName: (5) ["apple", "orange", "banana", "watermelon", "pineapple"]__proto__: Object

2017年2月22日 21:36
編輯回答
純妹
const id = [];
const tagName = [];
json.forEach((item) => {
    id.push(item.id);
    tagName.push(item.tagName);
})
2017年1月5日 09:10
編輯回答
枕邊人
var ids = [];
var tagNames = [];
    for(var i of json){
        if(i.id){
            ids.push(i.id);
        }
        if(i.tagName){
            tagNames.push(i.tagName);
        }
    }
2017年1月14日 05:26