Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery正在将prevObject:添加到数组中_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript Jquery正在将prevObject:添加到数组中

Javascript Jquery正在将prevObject:添加到数组中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想对数组中的所有浮点数求和 当我在chrome控制台中执行此操作时 $("tr.project_hours").find("td.number").map(function(i,v) {return parseFloat($(v).attr("data-time")) }) 我明白了 这就是我想要的 但是,在我的代码中,我有更多的$(“tr.project_hours”),我想分别求和。 所以,我喜欢 $("tr.project_hours").each(function(){ ro

我想对数组中的所有浮点数求和

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

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

这就是我想要的

但是,在我的代码中,我有更多的$(“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>]
[0,0,0,0,0,0,0,prevObject:jQuery.fn.jQuery.init[7],上下文:]
结果就是臭名昭著的南


为什么要在数组中获取prevObject?我如何重构以摆脱它?

这应该实现预期的结果:

$("tr.project_hours").each(function(index, element) {
    var row = $(this).find('td.total');
    var total = 0;
    $(this).find("td.number").each(function (index, element) {
        total += parseFloat($(v).attr("data-time"));
    });
    row.html(total);
});

对(数组中的项)执行
,如果您正在获取这些键,则显然不会按
hasOwnProperty()
进行筛选。在这种情况下,我想您需要自己编写逻辑。

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

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

换句话说,向我们展示一个HTML示例。这将生成一个包含所有tr.project_hours表行的长数组。我需要把它们分开我明白了,这个答案更旨在说明为什么你在使用
jQuery.fn.map
.Love:)的结果中看到
prevObject
,你成就了我的一天!使用jQuery已经3年多了,只是刚刚发现了这个!这真让我高兴!关于添加这些道具的jQuery更好的解决方案,请参见steveukx的答案
var numbersArray = $("tr.project_hours").find("td.number").map(function(i,v)
  {return parseFloat($(v).attr("data-time"))
}).toArray();