Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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_Jquery_Multidimensional Array - Fatal编程技术网

JavaScript:将多维数组转换为二维数组

JavaScript:将多维数组转换为二维数组,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,我有一个JS数组,其中包含如下数据: var myarr = [[new Date("2011-12-01"), 389, 380.75, 382.54, 387.93], [new Date("2011-11-30"), 382.28, 378.3, 381.29, 382.2]...] 是否有办法只选择整个日期列和每行的最后一个数字?我正在寻找这样的输出: [[new Date("2011-12-01"), 387.93],[new Date("2011-11-30"), 382.2]..

我有一个JS数组,其中包含如下数据:

var myarr = [[new Date("2011-12-01"), 389, 380.75, 382.54, 387.93],
[new Date("2011-11-30"), 382.28, 378.3, 381.29, 382.2]...]
是否有办法只选择整个日期列和每行的最后一个数字?我正在寻找这样的输出:

[[new Date("2011-12-01"), 387.93],[new Date("2011-11-30"), 382.2]...]
或者在for循环中:

var myCollapsedArr = [];

for(var i = 0; i<myarr.length; i++) {
    myCollapsedArr.push([myarr[i], [myarr[i][myarr[i].length-1]]);
}
var myCollapsedArr=[];

对于(var i=0;i选项1-简单for循环

// Create array to hold new values
var newArray = [];
// Loop through existing array and pull out data
for(var i = 0; i < myarr.length; i++) {
    newArray.push([myarr[i][0], myarr[i][myarr[i].length - 1]]);
}

​下面是演示。

注意,在循环设置中缓存数组长度是一种很好的做法,否则每次都要计算。速度不是很快,但也不是一个坏主意。
(var i=0,len=myarr.length;iThanks,Elliot。循环成功了。尽管我在想可能有一些函数,比如slice,可以不使用循环就完成它。干杯!
// Create array to hold new values
var newArray = [];
// Loop through existing array and pull out data
for(var i = 0; i < myarr.length; i++) {
    newArray.push([myarr[i][0], myarr[i][myarr[i].length - 1]]);
}
// Create array to hold new values
var newArray = [];

// Loop through existing array and pull out data
myarr.forEach(function(obj) {
    newArray.push([obj[0], obj[obj.length - 1]]);
});