小编ino*_*tia的帖子

为什么我不能在Javascript元素集合上使用Array.forEach?

我正在使用Babel/ES6构建应用程序.我想禁用它的仅查看版本的所有表单元素,所以我这样做:

let form = document.getElementById('application-form')
let elements = form.elements
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这一点,而不是使用常规的旧for循环(它确实有效):

elements.forEach((el) => {
    el.disabled = true
})
Run Code Online (Sandbox Code Playgroud)

但我明白了 TypeError: elements.forEach is not a function

奇怪的是,如果我console.log(elements)在Chrome开发者控制台中,它就像一个带有一堆input对象的数组.它不显示Object对象的符号,并且所有键都是整数.我认为它是某种伪数组,但我甚至不知道如何找到它.

编辑:简短回答它不是一个数组,它是一个HTMLCollection.请参阅为什么节点列表没有forEach?


*UPDATE*

根据这个答案,nodelist现在有了forEach方法!

javascript arrays babel ecmascript-6

7
推荐指数
1
解决办法
1万
查看次数

Javascript - 将数组解构为对象

有没有更好的方法将解构数组转换为 JavaScript 中的对象?

我正在使用 axios API 库,当我一次执行多个查询时,我会返回一个包含 4-5 API 的数组responses。然后我想将它们包装到一个对象中并传递给另一个函数。也许有一个单线?这并不是什么大不了的事,但我的申请中有很多这样的东西。

const [foo, bar, baz] = [1, 2, 3]
const obj = { foo, bar, baz }
console.log(obj)
=> {foo: 1, bar: 2, baz: 3}
Run Code Online (Sandbox Code Playgroud)

javascript arrays ecmascript-6

5
推荐指数
1
解决办法
1182
查看次数

标签 统计

arrays ×2

ecmascript-6 ×2

javascript ×2

babel ×1