我正在尝试使用map&reduce计算页面中几个元素的高度之和。由于未知原因,这引发了以下异常:
VM52933:2未捕获的TypeError:$(...)。map(...)。reduce不是函数(...)
$('.items')
.map( (index,slide) => $(slide).height() )
.reduce( (prev, next) => prev + next, 0 )
.map返回一个有效的数组:
[48, 48, 48, 75, 48]
如果我单独做地图([48,48,48,75,48] .reduce(...)),它会工作。我在这里做错了什么?
这是因为当您执行$('。items')时,它是一个类似于结构的数组,而不是数组。如果您看到NodeList类型广告的原型,它上面没有reduce方法。如果从Array.from传递它,它将把它转换成适当的数组,并且您将能够应用reduce,map和所有其他数组函数。
可以在以下位置找到更多详细信息
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from
做类似的事情
Array.from($('.items'))
.map( (slide) => $(slide).height() )
.reduce( (prev, next) => prev + next, 0 );
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句