我想创建包装费计算器。 我创建了几个滑块。有高度,宽度,长度和重量滑块。在用户设置所有滑块后,我想从阵列中检索费用。 最好的方法是什么?
使用数据链接到表:https://services.amazon.co.uk/services/fulfilment-by-amazon/pricing.html
链接到我的工具:http://tests.uk4u.pl/amazonProfitCalc/
我做了什么:
var slider_length_value = $(".slider-length").slider("value");
var slider_width_value = $(".slider-width").slider("value");
var slider_height_value = $(".slider-height").slider("value");
var slider_weight_value = $(".slider-weight").slider("value");
var fullfilmentFee = Array({
"packaging": "Small Envelope",
"length": "20",
"width": "15",
"height": "1",
"weight": "100",
"fee": "1.07"
},
{
"packaging": "Standard Envelope",
"length": "33",
"width": "23",
"height": "2.5",
"weight": "100",
"fee": "1.19"
}, {
"packaging": "Standard Envelope",
"length": "33",
"width": "23",
"height": "2.5",
"weight": "250",
"fee": "1.31"
}, {
"packaging": "Standard Envelope",
"length": "33",
"width": "23",
"height": "2.5",
"weight": "500",
"fee": "1.51"
},
{
"packaging": "Large Envelope",
"length": "33",
"width": "23",
"height": "5",
"weight": "1000",
"fee": "1.70"
},
{
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "250",
"fee": "1.66"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "500",
"fee": "1.72"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "1000",
"fee": "1.77"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "1500",
"fee": "2.19"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "2000",
"fee": "2.41"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "3000",
"fee": "3.30"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "4000",
"fee": "3.40"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "5000",
"fee": "3.40"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "6000",
"fee": "3.45"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "7000",
"fee": "3.45"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "8000",
"fee": "3.53"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "9000",
"fee": "3.53"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "10000",
"fee": "3.53"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "11000",
"fee": "3.53"
}, {
"packaging": "Standard Parcel",
"length": "45",
"width": "34",
"height": "26",
"weight": "12000",
"fee": "3.54"
}
);
var fee = $.map(fullfilmentFee, function(value, key) {
if (value.length == "33") {
//return value.fee;
return value.fee;
} else {
$(".message").html("Error!!!");
}
});
//console.log(price);
//output: $220
$(".message").html(fee);
编辑:
也许。用户prepars包和使用滑块设置此包的长度宽度高度和重量。接下来,他按下提交按钮并获得与那些昏暗和重量相对应的履行费用。如果所有dims与数组完全相同,那么非常简单:
如何制作条件,其中dims在数组之间,如
之间履行[0]。长度和履行[1] .length
如果一个或多个变量(长度或宽度或高度或重量)的值高于正常范围,我希望得到与此值相对应的费用。
对我的英语表示抱歉和抱歉
答案 0 :(得分:0)
你有一个带有对象的数组,所以我们可以做一个简单的循环来迭代数组单个对象,我们可以从费用中获得费用金额。键入每个数组对象,如下所示:
function getCalculatedFee(fullfilmentFee){
var fullAmount = 0;
for(var i=0; i<=fullfilmentFee.length; i++){
fullAmount += fullfilmentFee[i].fee;
}
return fullAmount;
}
要获得单个值,请尝试以下操作:
fullfilmentFee[0].fee
根据您的示例,您可以制作4个功能,这些功能可以获得准确值(如长度)的费用:
function getFeeByLength(slider_length_value){
$.each(fullfilmentFee, function(value, key) {
if (value.length == slider_length_value) {
return value.fee;
}
});
}
和其他用户选择的值相同。使用此功能,您可以随时调用您的函数 - 确切地说您需要匹配值。
答案 1 :(得分:0)
不太确定您要执行的操作,但您可以访问数组项的变量。你只需做fullfilmentFee[i].fee
。通过执行fullfilmentFee[i]
,您可以获得数组中的i
项,并且您可以通过.andTheVariable
访问该项的变量,因此它将是:.packaging
, .length
,.width
,.height
,.weight
或.fee
示例:
fullfilmentFee[0].fee
返回1.07
fullfilmentFee[1].fee
返回1.19
这就是你要找的东西吗?
[编辑]
我将在这里回答。
您必须检查哪个i
的长度为19.要执行此操作,请检查整个数组,并查看长度为19的数据,获取费用:
var feeForLength19; // where we are going to store the fee
// run the whole array
for(var i=0;i<=fullfilmentFee.length;i++){
// for the variable that has length 19, we store his fee
if(fullfilmentFee[i].length == 19){
feeForLength19 = fullfilmentFee[i].fee;
}
}