我在 js 中的数组开头未定义
I get undefined at start of array in js
我制作了这段代码:
function get_coordinates(container) {
var x;
var y;
var divs = container.getElementsByTagName('div');
Array.from(divs).forEach(div => {
y += div.offsetTop+" ";
x += div.offsetLeft + " ";
});
const a = x + ";" + y;
console.log(divs);
return x+";"+y;
}
这是控制台日志:
HTMLCollection(10) [div#selector_1.selector, div#selector_2.selector, div#selector_3.selector, div#selector_4.selector, div#selector_5.selector, div#selector_6.selector, div#selector_7.selector, div#selector_8.selector, div#selector_9.selector, div#selector_10.selector, selector_1: div#selector_1.selector, selector_2: div#selector_2.selector, selector_3: div#selector_3.selector, selector_4: div#selector_4.selector, selector_5: div#selector_5.selector, …]
这是 return :
undefined0 0 0 0 0 0 0 0 0 0 ;undefined0 0 0 0 0 0 0 0 0 0
我不明白为什么我在两者的开头都未定义。
正如 Musa 在之前的评论中所建议的那样,您没有初始化 x
和 y
,因此基本上您要做的是以下操作:
y += div.offsetTop + " ";
x += div.offsetLeft + " ";
转化为
undefined += div.offsetTop + " ";
undefined += div.offsetLeft + " ";
在顶部你应该定义x
和y
是字符串,例如:
let x = "";
let y = "";
此外,我建议使用 let
和 const
而不是 var
,现在是 2022 年,因此不再需要 var
。
我制作了这段代码:
function get_coordinates(container) {
var x;
var y;
var divs = container.getElementsByTagName('div');
Array.from(divs).forEach(div => {
y += div.offsetTop+" ";
x += div.offsetLeft + " ";
});
const a = x + ";" + y;
console.log(divs);
return x+";"+y;
}
这是控制台日志:
HTMLCollection(10) [div#selector_1.selector, div#selector_2.selector, div#selector_3.selector, div#selector_4.selector, div#selector_5.selector, div#selector_6.selector, div#selector_7.selector, div#selector_8.selector, div#selector_9.selector, div#selector_10.selector, selector_1: div#selector_1.selector, selector_2: div#selector_2.selector, selector_3: div#selector_3.selector, selector_4: div#selector_4.selector, selector_5: div#selector_5.selector, …]
这是 return :
undefined0 0 0 0 0 0 0 0 0 0 ;undefined0 0 0 0 0 0 0 0 0 0
我不明白为什么我在两者的开头都未定义。
正如 Musa 在之前的评论中所建议的那样,您没有初始化 x
和 y
,因此基本上您要做的是以下操作:
y += div.offsetTop + " ";
x += div.offsetLeft + " ";
转化为
undefined += div.offsetTop + " ";
undefined += div.offsetLeft + " ";
在顶部你应该定义x
和y
是字符串,例如:
let x = "";
let y = "";
此外,我建议使用 let
和 const
而不是 var
,现在是 2022 年,因此不再需要 var
。