我的Parse数据库中有一个用数字填充的列,我试图将它们全部加在一起以获得总数。
如果返回的数据是单个数组,我知道如何一起添加,但我只能弄清楚如何将数字作为单个对象返回。这是我的代码:
var query = new Parse.Query(Services);
query.exists("costMonthly");
query.find({
success: function (results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
console.log(object.get('costMonthly'));
}
},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});
我如何获取我想要的数组或至少将我拥有的内容转换为一个?
答案 0 :(得分:2)
看起来您正在尝试对costMonthly
字段求和。您可以使用reduce
轻松完成此操作:
var query = new Parse.Query(Services);
query.exists("costMonthly");
query.find({
success: function (results) {
var sum = results.reduce(function(prev, cur) {
return prev + cur.get('costMonthly');
}, 0);
},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});
如果您的目标是costMonthly值的数组,则可以使用:
var monthlyCosts = results.map(function(item) {
return item.get('costMonthly');
});
在此处详细了解reduce
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
答案 1 :(得分:2)
您可以创建一个临时数组,并通过迭代推送结果,而不是最佳解决方案,但如果您想稍后操作结果,则非常有用:
/*NEW Jquery inject*/
var script = unsafeWindow.document.createElement("SCRIPT");
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js';
script.type = 'text/javascript';
unsafeWindow.document.getElementsByTagName("head")[0].appendChild(script);
script.addEventListener('load', function(){
jQuery = unsafeWindow['jQuery'];
unsafeWindow['$_'] = jQuery.noConflict(true);
}, false);
/*OLD Jquery inject*/
/*function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "https://code.jquery.com/jquery-2.0.3.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "window.jQQ=jQuery.noConflict(true);(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}*/