将对象转换为顺序数组格式 - javascript

Converting Object to sequential array format - javascript?

本文关键字:格式 javascript 数组 顺序 对象 转换      更新时间:2023-09-26

我有以下对象结构

 var obj = {"0":"direct","1":"indirect","2":"dir","3":"indir"};

预期输出为:

result = [["direct","indirect"],["indirect","dir"],["dir","indir"]];

我尝试过的:

    var result = [];
    var array = [];
    for(var key in obj){
          if(array.length <2) {
              array.push(obj[key]);
          }else{
              array =[];
              array.push(obj[key-1]);
           }
       if(array.length == 2){
            result.push(array);
       }
     }
   console.log(result);

我得到的输出如下:

result = [["direct", "indirect"], ["indirect", "indir"]]

如果它们都是至少包含一个字符的字符串,那么您可以这样做:

var obj = {"0":"direct","1":"indirect","2":"dir","3":"indir"};
var result = [];
for (var i = 1; obj[i]; i++) {
    result.push([obj[i-1], obj[i]]);
}

它从索引 1 开始,并推送数组中的当前和以前的项目。只要值为真,它就会继续,因此如果有一个空字符串,它就会停止。

如果需要包含错误的值,则应首先计算属性。

var obj = {"0":"direct","1":"indirect","2":"dir","3":"indir"};
var result = [];
var len = Object.keys(obj).length;
for (var i = 1; i < len; i++) {
    result.push([obj[i-1], obj[i]]);
}