我想要一个列向量作为我的输出,而是获得一个单维数组。请检查小提琴中的代码。我做错了什么?
我当前和预期的输出是:
当前输出:数组[ 0, 1 ]
数组[ 5, 10 ]
预期输出:数组[ 0 ]
数组[ 1 ]
数组[ 5 ]
数组[ 10 ]
请检查浏览器控制台。
如何获得预期输出?
Js Fiddle:https://jsfiddle.net/4o1dj1uw/2/
代码:
this.b = [[[0,1]],[[5,10]]];
function convertarray(arrToConvert) {
//it will convert a matrix in array
var newArr = [];
for (var i = 0; i < arrToConvert.length; i++) {
newArr = newArr.concat(arrToConvert[i]);
}
return newArr;
}
console.log(...convertarray(this.b))
答案 0 :(得分:2)
几乎就在那里,你需要进入最深的阵列。
另一种方法是使用递归。
this.b = [[[0,1]],[[5,10]]];
function convertarray(arrToConvert) {
//it will convert a matrix in array
var newArr = [];
for (var i = 0; i < arrToConvert.length; i++) {
if (Array.isArray(arrToConvert[i])) {
newArr = newArr.concat(convertarray(arrToConvert[i]));
} else {
newArr.push([arrToConvert[i]]);
}
}
return newArr;
}
console.log(JSON.stringify(convertarray(this.b)))
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
通过convertarray()
推送两次:
console.log(convertarray(convertarray(this.b)))
如果你想获得这些项目的数组,你可以这样做:
console.log(...convertarray(convertarray(this.b)).map(x => [x]));
结果
[0] [1] [5] [10]