Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数组(javascript)构建数组_Javascript - Fatal编程技术网

使用数组(javascript)构建数组

使用数组(javascript)构建数组,javascript,Javascript,如何在javascript中构建执行以下操作的函数: 输入: var data = [null, 1, 2, 3, null, null, 2, null, 4] 输出: dataset = [ [null, 1, 2, 3, null, null, null, null, null], [null, null, null, null, null, null, 2, null, null], [null, null, null, null, null, null, null, null, 4

如何在javascript中构建执行以下操作的函数:

输入:

var data = [null, 1, 2, 3, null, null, 2, null, 4]
输出:

dataset = [ 
[null, 1, 2, 3, null, null, null, null, null],
[null, null, null, null, null, null, 2, null, null],
[null, null, null, null, null, null, null, null, 4], 
]
事实上,在本例中,我的输入有3组非空值:这些集合是:[1,2,3],[2]和[4]

从这些集合中,我希望构建具有这些值(非空集合)且与输入数组保留相同索引的数组


谢谢

给你

var a=[null,1,2,3,null,2,null,null,4,null];
变量b=[];//结果
for(var arr=null,i=0;i
以下是我的结果:

var data = [null, 1, 2, 3, null, null, 2, null, 4];
var dataset = [[]];
for(var i = 0; i < data.length; i++) {
  if(!data[i]) {
    if(!data[i-1]) {
      dataset[dataset.length-1].push(data[i]);
    } else {
      for(var fillRight = i; fillRight < data.length; fillRight++) {
        dataset[dataset.length-1].push(null);
      }
      dataset.push([null]);
      for(var fillLeft = 0; fillLeft < i; fillLeft++) {
        dataset[dataset.length-1].push(null);
      }
    }
  } else {
    dataset[dataset.length-1].push(data[i]);
  }
}
var data=[null,1,2,3,null,null,2,null,4];
var数据集=[[]];
对于(变量i=0;i
只是一个带有

var data=[null,1,2,3,null,null,null,2,null,4],
结果=[];
数据还原(函数(r,a,i){
如果(a!==null){
如果(r==null){
push(Array.apply(null,{length:data.length}).map(函数(){returnnull;}));
}
结果[result.length-1][i]=a;
}
返回a;
},空);

document.write(“”+JSON.stringify(结果,0,4)+“”)[[null,1,2,3,null,null,null,null],[null,null,null,null,null,2,null,null,null],[null,null,null,null,null,null,4]
,正如您在输出中看到的那样