Sen*_*hil 6 javascript arrays jquery object
我有两个不同的数组对象,并且有一个使用这些对象并执行计算的函数。我想知道如何执行计算并获取JavaScript中的所有嵌套数组对象,如下所示(预期输出)。
var obj = [
{
name: "insta",
fee: "2",
rate: "2.00"
},
{
name: "transfer",
fee: "1",
rate: "3.00"
}
],
var query =
{
country: "SG",
sourceamount: "4,000"
}
function config(objectdata, querydata){
let send_amount = querydata.sourceamount.replace(/,/g,"");
let fee = objectdata.fee;
let rate = objectdata.rate;
let amount_to_convert = send_amount - fee;
let receive_amount = amount_to_convert * rate;
let result_data = {send: send_amount, fees: fee, ratevalue: rate, amountvalue :amount_to_convert, receive: receive_amount}
return result_data;
}
result = config(obj, query);
Run Code Online (Sandbox Code Playgroud)
Expected Output:
result = [
{
name: "insta",
fees: "2",
ratevalue: "2.00",
amountvalue: "3998",
receive: "7976"
country: "SG",
sourceamount: "4,000"
},
{
name: "transfer",
fees: "1",
ratevalue: "3.00",
amountvalue: "3997",
receive: "11,991"
country: "SG",
sourceamount: "4,000"
}
]
Run Code Online (Sandbox Code Playgroud)
您需要遍历obj
数组并构造输出。
注意:fee-rate-sourceamount
如果要执行算术运算,则需要解析这些值。
var obj = [{
name: "insta",
fee: "2",
rate: "2.00"
}, {
name: "transfer",
fee: "1",
rate: "3.00"
}];
var query = {
country: "SG",
sourceamount: "4,000"
};
function config(objectdata, querydata) {
let result_data = objectdata.map(function(obj) {
let send_amount = parseInt(querydata.sourceamount.replace(/,/g, ""));
let fee = parseInt(obj.fee);
let rate = parseInt(obj.rate);
let amount_to_convert = send_amount - fee;
let receive_amount = amount_to_convert * rate;
return {
name: obj.name,
fees: fee,
ratevalue: rate,
amountvalue: amount_to_convert,
receive: receive_amount,
country: querydata.country,
sourceamount: send_amount,
}
});
return result_data;
}
console.log(config(obj, query));
Run Code Online (Sandbox Code Playgroud)
您可以使用 .map 循环数组并构造所有对象。
var obj = [{
name: "insta",
fee: "2",
rate: "2.00"
},
{
name: "transfer",
fee: "1",
rate: "3.00"
}
];
var query = {
country: "SG",
sourceamount: "4,000"
}
function config(objectdata, querydata) {
return objectdata.map(function(obj) {
let send_amount = +querydata.sourceamount.replace(/,/g, "");
let fee = +obj.fee;
let rate = +obj.rate;
let amount_to_convert = send_amount - fee;
let receive_amount = amount_to_convert * rate;
return {
name: obj.name,
fees: fee,
ratevalue: rate,
amountvalue: amount_to_convert,
receive: receive_amount,
...querydata
}
});
}
result = config(obj, query);
console.log(result)
Run Code Online (Sandbox Code Playgroud)