gpt4 book ai didi

javascript - 无法减少对象内部的数组

转载 作者:行者123 更新时间:2023-12-02 15:39:02 24 4
gpt4 key购买 nike

我正在尝试减少对象内部的数组。我回来了

push is not a function 

我已将数组开始为空,并创建了一个 add 函数作为第一个参数传入。

function add(a,b) {
return a +b;
}

var navBarArray = [];
var listArray = [];

var mapping = {
".navbar": navBarArray,
".list-group": listArray
};

我在映射对象上尝试了这种方法,但它会产生错误

var mapping = {
".navbar": Math.round(navBarArray.reduce(add,0) ),
".list-group": listArray
};

但是,我发现推送不是控制台中的功能。

下面是我将值传递给数组的函数。我可以在函数内部创建一个变量并在那里减少它。但是,这限制了对我的变量的访问,并且在我继续时会使我的函数变得臃肿。

  Object.keys(mapping).forEach(function(selector) { 
$(selector).hover(function(evt) {
console.log('mapping',mapping);
console.log('selector',selector);
enteredTime = new Date();
}, function() {
var ctime = new Date();
var time = (ctime.getTime() - enteredTime.getTime())/1000;
mapping[selector].push(time);

// *********** this works but not where I need it to*******
var reduce = Math.round(navBarArray.reduce(add,0) );
console.log(reduce);
});
})

最佳答案

更改映射对象,以便它为数组和总计提供单独的位置:

var mapping = {
".navbar": {
total: 0,
times: []
},
".list-group": {
total: 0,
times: []
}
}

然后你进行mapping[selector].times.push(time),并将总计输入:

mapping[selector].total = mapping[selector].times.reduce(add, 0);

关于javascript - 无法减少对象内部的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com