And*_*nra 7 javascript arrays jquery
我正在尝试使用map&reduce计算页面中几个元素的高度之和.由于未知原因,这给我带来以下异常:
VM52933:2未捕获的TypeError:$(...).map(...).reduce不是函数(...)
$('.items')
.map( (index,slide) => $(slide).height() )
.reduce( (prev, next) => prev + next, 0 )
Run Code Online (Sandbox Code Playgroud)
.map返回一个有效的数组:
[48, 48, 48, 75, 48]
Run Code Online (Sandbox Code Playgroud)
如果我单独做地图([48,48,48,75,48] .reduce(...))它的工作原理.我在这做错了什么?
这是因为当你执行$('.items')时它是一个类似数组的数组而不是数组.如果您看到原型itof NodeList类型ad,它就没有reduce方法.如果从Array.from传递它,那么它会将其转换为正确的数组,您将能够应用reduce,map和所有其他数组函数.
更多细节可以在
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from
做点什么
Array.from($('.items'))
.map( (slide) => $(slide).height() )
.reduce( (prev, next) => prev + next, 0 );
Run Code Online (Sandbox Code Playgroud)