javascript - Jquery 正在添加 prevObject : to array

标签 javascript jquery arrays

我想对数组中的所有 float 求和

当我在 chrome 控制台中执行此操作时

$("tr.project_hours").find("td.number").map(function(i,v)
{return parseFloat($(v).attr("data-time"))
})

我明白了

[0, 0, 0, 0, 0, 0, 0]

这就是我想要的

但是,在我的代码中我有更多的 $("tr.project_hours") 并且我想分别对它们求和。 所以,我愿意

$("tr.project_hours").each(function(){
    row = $(this).find('td.total')
    row.html(sumInputsIn($(this).find("td.number").map(function(i,v){
     return parseFloat($(v).attr("data-time"))})));
    })

('td.total') 是应该显示结果的列。问题是最后的代码在控制台中返回了这个

[0, 0, 0, 0, 0, 0, 0, prevObject: jQuery.fn.jQuery.init[7], context: <tr>]

所以结果就是臭名昭著的 NaN。

为什么我的数组中有 prevObject?我如何通过重构来摆脱它?

最佳答案

在 jQuery 集合上调用 map 的返回类型是另一个 jQuery 集合。如果您只想访问映射中使用的函数的结果,则需要使用 .toArray() 来返回底层数组:

var numbersArray = $("tr.project_hours").find("td.number").map(function(i,v)
  {return parseFloat($(v).attr("data-time"))
}).toArray();

关于javascript - Jquery 正在添加 prevObject : to array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14193469/

相关文章:

javascript - 如何将 Javascript 字符串转换为八位字节/字符数组?

arrays - F# 为什么在映射函数来对数组中的每个数组进行置乱时,数组不会以不同的方式进行置乱

javascript - Canvas 旋转+缩放

javascript - 使用 ID 正则表达式或冗余类的 Jquery 选择器

javascript - 如何自动提交使用php的html页面

javascript - 脚本中模糊的div如何分配悬停点击

jquery - 滚动 adsense 时的粘性菜单

javascript - JS : Biggest element of an array, 小于给定变量

javascript - 将谷歌翻译添加到网站

javascript - React-Hook Form with useFieldArray : TextField value does not show up in the console. 我该如何修复它?