我有一个数组有一些数组,但我无法从第二个数组中获取父数组中第一个数组的值。
我不知道发生了什么事。
如何在第一次迭代中获取父数组中第一个数组的值,然后在第二次迭代中获取第二个数组中的值,依此类推。无论父级中的数组数量多少?
我的代码:
<!DOCTYPE html>
<html>
<body>
<p id="demo1"></p>
<p id="demo2"></p>
<p id="demo3"></p>
<script>
var DetalleFactura=[[1, 2, 3],[6, 7, 8]];
DetalleFactura.forEach((subArr)=>{
document.getElementById("demo1").innerHTML = subArr[0] + "<br>";
document.getElementById("demo2").innerHTML = subArr[1] + "<br>";
document.getElementById("demo3").innerHTML = subArr[2] + "<br>";
});
</script>
</body>
</html>
你正确得到子数组,问题是你用最后一个子数组覆盖innerHtml。如果再添加一个子数组,innerHtml将打印DetalleFactura
的最后一项。
所以,我认为你可以像.innerHtml += subArr[0] + "<br>";
一样连接innerHtml内容
使用+ =附加到字符串而不是覆盖它的=。
var DetalleFactura=[[1, 2, 3],[6, 7, 8]];
DetalleFactura.forEach((subArr)=>{
document.getElementById("demo1").innerHTML += subArr[0] + "<br>";
document.getElementById("demo2").innerHTML += subArr[1] + "<br>";
document.getElementById("demo3").innerHTML += subArr[2] + "<br>";
});
<p id="demo1"></p>
<p id="demo2"></p>
<p id="demo3"></p>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style></style>
<script>
var arr = [ 0, [1, 2], [3, 4, 5], [6, [7, 8], 9], 10];
// Remove nesting of multi-dimensional array and return vector of all
// elements of a from top-to-bottom, left-to-right, etc. - also converts
// scalar to singleton vector.
function ravel(arg, flat) {var self = {name:'ravel'};
// If flat - accumulator array - not yet defined, create it.
if ('undefined' == typeof flat) flat = new Array();
try {
// If arg is an array, iterate over the elements in index order.
if (-1 != arg.constructor.toString().indexOf('Array')) {
// Call self recursively to get elements or process next, outermost
// level of nesting.
for (var i = 0; i < arg.length; i++) {this.ravel(arg[i],flat);}
}
// Otherwise, just add simple element to accumulator.
else flat.push( arg );
// Return accumulated values.
return flat;
}
catch (e) {console.log("ArraysException", e, self.name, null, arguments);}
};
function run () {
var out = ravel( arr );
document.getElementById('out').innerHTML = out;
};
</script>
</head>
<body>
<form>
<input type="button" value="ravel and show array" onclick="run();"></input>
</form>
<p id="out">
not clear how you intend to use the elements of the array - this just
strips all levels of nesting, leaving a flat, one-dimensional array
you can manipulate more easily
</p>
</body>
</html>