更新一个非常旧的应用程序。Rails 3.22.xx -〉4.2.xx
此代码用于工作
ko.observable(ko.utils.arrayMap(@posts(), (page) -> page.unread_count()).sum())
它将返回总数的一个数字,类似于15
。
在升级到Rails 4.2之后,它返回
Uncaught TypeError: ko.utils.arrayMap(...).sum is not a function
我不知道如何得到这个值,所以我可以只返回一个值的和,如果我去掉这个和,它会返回一个包含所有值的数组,类似于1,0,0,0,10,0,20
,看起来我需要这个值来求和,因为它是作为一个方法从视图中调用的,所以如果我只添加一个for循环,把所有这些加起来,然后赋给变量,视图仍然会中断。
2条答案
按热度按时间z5btuh9x1#
我对rails一无所知,所以不知道为什么它在更新时坏了...但我知道
sum
不是javascript中的默认数组方法。我建议您尝试将其替换为
reduce
:您也可以通过如下求和来跳过
map
运算:yi0zb3m42#
你不需要再使用敲除工具了,所有的浏览器都实现了Array.prototype.map:
或使用普通JavaScript