我正在编写有滑块的代码,当滑块值发生变化时,我想进行api调用并获得结果。这是我的代码。
function alertValues() {
var alcohol, sulphate, sulphur;
//Or
if ($("#sliderValueAlcohol").val()) {
alcohol = $("#sliderValueAlcohol").val();
}
if ($("#sliderValueSulphate").val()) {
sulphate = $("#sliderValueSulphate").val();
}
if ($("#sliderValueSulphur").val()) {
sulphur = $("#sliderValueSulphur").val();
}
if (alcohol && sulphate) {
var idString = sulphate + "";
var id = 1;
console.log(typeof id);
$.ajax({
type: 'post',
url: 'https://thcj3oq32b.execute-api.us-east-1.amazonaws.com/prod/getsimulation',
data: JSON.stringify({
"targetState": "7"
}),
/* etc */
success: function (jsondata) {
var arr2 = jsondata;
var result = arr2
.filter(function (objs) {
return ((objs.find((obj) => obj.ingredients === "sulphate").min <= id) && (objs.find((obj) => obj.ingredients === "sulphate").max >= id) && (objs.find((obj) => obj.ingredients === "alcohol").max == 14));
})
.reduce(function (a, b) {
return a.concat(b);
});
console.log(JSON.stringify(result[0].target_state));
},
error: function () {
alert("error");
}
})
}
}
当我传递var id = parseFloat(idString);
而不是静态数字时,我得到的错误是Uncaught TypeError: Reduce of empty array with no initial value
。无法理解我哪里出错了。请让我知道如何解决这个问题。
由于
答案 0 :(得分:1)
您忘记初始化reduce操作中的值。添加空数组初始值[]