在JavaScript中执行计算后,如何获取嵌套数组中的所有对象?

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)

Zak*_*rki 7

您需要遍历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)


R3t*_*tep 3

您可以使用 .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)