繁体   English   中英

我可以将此循环数组转换为Json Object吗?

[英]Can i turn this looping array into Json Object?

我有这个数组。

[[“ 20152”,“ 15301”,“ 020053”,“ 2016-08-05”,“ 05:00”,“ 06:00”,“ 07150100190”],[“ 20152”,“ 15301”,“ 020051” “,” 2016-08-05“,” 03:00“,” 04:00“,” 07150100190“],[” 20152“,” 15301“,” 000040“,” 2016-08-05“,” 01 :00“,” 02:00“,” 07150100190“],[” 20152“,” 15301“,” 020050“,” 2016-08-05“,” 07:00“,” 08:00“,” 07150100190“ “]]

有可能将其更改为

var timetable = [{
    "thakad"  : "20152", 
    "prodi"   : "15301",
    "mk"      : "020053",        
    "date"    : "2016-08-05", 
    "open"    : "05:00",
    "close"   : "06:00",
    "number"  : "07150100190"
},
{
    //and keep looping dynamically
}];

如果我可以在JavaScript中循环更改数组吗?

您可以尝试这样的事情

var array = [["20152","15301","020053","2016-08-05","05:00","06:00","07150100190"],["20152","15301","020051","2016-08-05","03:00","04:00","07150100190"],["20152","15301","000040","2016-08-05","01:00","02:00","07150100190"],["20152","15301","020050","2016-08-05","07:00","08:00","07150100190"]]
var elems = ["thakad","prodi","mk","date","open","close","number"]


var array = array.map(function(arg){
  return (function(){
    var obj = {};
    for (var i = 0;i < elems.length; i++) {
      obj[elems[i]] = arg[i];
    }
    return obj;
  })()
});
array = JSON.stringify(array);
console.log(array);

您也可以像下面这样:

<script type="text/javascript">
    function test() {
        var json = [["20152", "15301", "020053", "2016-08-05", "05:00", "06:00", "07150100190"], ["20152", "15301", "020051", "2016-08-05", "03:00", "04:00", "07150100190"], ["20152", "15301", "000040", "2016-08-05", "01:00", "02:00", "07150100190"], ["20152", "15301", "020050", "2016-08-05", "07:00", "08:00", "07150100190"]];
        var arr = [];
        $(json).each(function (i) {
            arr.push({
                thakad: json[i][0],
                prodi: json[i][1],
                mk: json[i][2],
                date: json[i][3],
                open: json[i][4],
                close: json[i][5],
                number: json[i][6]
            });
        });         
        console.log(JSON.stringify(arr));
    }
</script>

ES2015版本:

const data = [["20152","15301","020053","2016-08-05","05:00","06:00","07150100190"],["20152","15301","020051","2016-08-05","03:00","04:00","07150100190"],["20152","15301","000040","2016-08-05","01:00","02:00","07150100190"],["20152","15301","020050","2016-08-05","07:00","08:00","07150100190"]]

const arr = data.map(([thakad, prodi, mk, date, open, close, number]) => 
    ({thakad, prodi, mk, date, open, close, number})
);

尝试这个

var t = [["20152","15301","020053","2016-08-05","05:00","06:00","07150100190"],["20153","15301","020051","2016-08-05","03:00","04:00","07150100190"],["20154","15301","000040","2016-08-05","01:00","02:00","07150100190"],["20155","15301","020050","2016-08-05","07:00","08:00","07150100190"]];
var res=[];
var keyArray =['thakad','prodi','mk','date','open','close','number'];
for(var i=0;i<t.length;i++){
  var temp={};
   for(var j=0;j<t[i].length;j++){
     temp[keyArray[j]] = t[i][j];
     res[i] = temp;
   }
}
console.log(JSON.stringify(res));

您可以使用组合array.maparray.reduce

 var array = [["20152","15301","020053","2016-08-05","05:00","06:00","07150100190"],["20152","15301","020051","2016-08-05","03:00","04:00","07150100190"],["20152","15301","000040","2016-08-05","01:00","02:00","07150100190"],["20152","15301","020050","2016-08-05","07:00","08:00","07150100190"]] var keys = ["thakad","prodi","mk","date","open","close","number"] var r = array.map(function(el){ return keys.reduce(function(c,n,i){ c[n] = el[i] return c; },{}); }); console.log(r) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM