Javascript concat 未按预期工作 - 未合并
Javascript concat not working as expected - not merging
我正在尝试合并来自 for 循环的值,但它并没有将它们合并到一个数组中,而是创建了单独的数组?
我是 Javascript 的新手,所以我可能误解了如何使用 concat 函数。我在下面插入了我的脚本的简化版本,我希望输出将所有值都放在一个数组中。谁能帮我指明正确的方向?
代码
var fixed = document.getElementById('fixed');
var sections = document.getElementsByClassName('section');
for (i = 0; i < sections.length; i++) {
var arr = [];
arr = arr.concat(sections[i]);
fixed.innerHTML = arr;
console.log(arr);
}
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
arr
变量必须在循环外声明一次,而不是每次循环都重新声明一个名为 arr
的新变量。
这样,结果将累积在一个数组中。
var fixed = document.getElementById('fixed');
var arr = [], sections = document.getElementsByClassName('section');
for (i = 0; i < sections.length; i++) {
arr = arr.concat(sections[i]);
fixed.innerHTML = arr;
console.log(arr);
}
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
在 for 循环之前声明数组,在循环之后设置 fixed.innerHtml
并阅读有关 javascript 范围的信息。
var fixed = document.getElementById('fixed');
var sections = document.getElementsByClassName('section');
var arr = [];
for (i = 0; i < sections.length; i++) {
arr = arr.concat(sections[i]);
}
fixed.innerHTML = arr;
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
我正在尝试合并来自 for 循环的值,但它并没有将它们合并到一个数组中,而是创建了单独的数组?
我是 Javascript 的新手,所以我可能误解了如何使用 concat 函数。我在下面插入了我的脚本的简化版本,我希望输出将所有值都放在一个数组中。谁能帮我指明正确的方向?
代码
var fixed = document.getElementById('fixed');
var sections = document.getElementsByClassName('section');
for (i = 0; i < sections.length; i++) {
var arr = [];
arr = arr.concat(sections[i]);
fixed.innerHTML = arr;
console.log(arr);
}
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
arr
变量必须在循环外声明一次,而不是每次循环都重新声明一个名为 arr
的新变量。
这样,结果将累积在一个数组中。
var fixed = document.getElementById('fixed');
var arr = [], sections = document.getElementsByClassName('section');
for (i = 0; i < sections.length; i++) {
arr = arr.concat(sections[i]);
fixed.innerHTML = arr;
console.log(arr);
}
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
在 for 循环之前声明数组,在循环之后设置 fixed.innerHtml
并阅读有关 javascript 范围的信息。
var fixed = document.getElementById('fixed');
var sections = document.getElementsByClassName('section');
var arr = [];
for (i = 0; i < sections.length; i++) {
arr = arr.concat(sections[i]);
}
fixed.innerHTML = arr;
<div class="fixed" id="fixed"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>
<div class="section"></div>