提问人:C Dub 提问时间:9/28/2022 最后编辑:Htet Oo Wai YanC Dub 更新时间:9/28/2022 访问量:149
从“for of”循环输出创建数组
Create an array from 'for of' loop outputs
问:
我在 JS 中有一个返回 HTML 元素 id 的语句,但它们位于多个输出中。我想获取这些输出并将它们放在一个数组中。for of
例如,HTML 是:
<div>
<button id="savebtn-1"></button>
</div>
<div>
<button id="savebtn-2"></button>
</div>
我的JS是:
const elements = document.querySelectorAll("button");
for (const element of elements) {
let id = elements.getAttribute("id");
}
console.log(id)
将显示:
保存BTN-1
保存BTN-2
如何将这些输出放入数组中?
感谢您对这个问题的关注。
答:
1赞
Phil
9/28/2022
#1
使用 Array.from() 和自定义映射器来提取 IDNodeList
const idArray = Array.from(
document.querySelectorAll("button"),
({ id }) => id
);
console.log(idArray);
<div>
<button id="savebtn-1">Button #1</button>
</div>
<div>
<button id="savebtn-2">Button #2</button>
</div>
评论
0赞
C Dub
9/28/2022
谢谢一堆菲尔!我之前非常接近这个解决方案,但不知何故我得到了九个单个数组,例如:[“savebtn-1”] [“savebtn-2”] 等等。
0赞
Yogi
9/28/2022
这将是首选解决方案,即使问题具体询问如何使用“for of”循环来做到这一点。+1
1赞
Htet Oo Wai Yan
9/28/2022
#2
您可以创建一个空数组并将 s 推入该数组。id
const elements = document.querySelectorAll("button");
const idArray = [];
for (const element of elements) {
let id = elements.getAttribute("id");
idArray.push(id);
}
console.log('idArray ', idArray);
3赞
John Mack
9/28/2022
#3
创建另一个数组并将所有 id 存储在该数组中。
const resultArray = [];
const elements = document.querySelectorAll("button");
for (const element of elements) {
const id = element.getAttribute("id");
resultArray.push(id);
}
console.log(resultArray);
<div>
<button id = "savebtn-1">Button 1</button>
</div>
<div>
<button id = "savebtn-2">Button 2</button>
</div>
评论
0赞
C Dub
9/28/2022
你摇滚麦克先生!超级乐于助人
0赞
Yogi
9/28/2022
该问题要求使用“for of”循环的解决方案。所以这是正确的答案,即使有其他(更好的)方法可以在没有for循环的情况下做到这一点。+1
0赞
C Dub
9/29/2022
谢谢瑜伽士。我有一位主管告诉我,我喜欢以艰难的方式做事......是的。感谢您关注问题的上下文。
评论