我有一个返回数组的函数,如何用参数定义返回数组中的一列名称?

假设不是字段“ qty”,而是要让其名称在myFieldName参数中传递的字段。

var results = _.map(
    _.where(data, {
        UNDERLYING: product
    }),
    function (r) {
        if (r["QUANTITY"] != 0 && !isInArray(Date.parse(r["REPORT_DATE"]), errorDates)) {
            return {
                dt: Date.parse(r["REPORT_DATE"]),
                qty: (r["QUANTITY"] * multiplier)
            };
        }
    }
);

最佳答案

创建对象后,可以分配新的或现有的属性,如下所示:

let foo = {bar: 1};
foo.baz = 2;


要使用动态名称来做到这一点,您需要使用方括号访问器,例如:

function assign(obj, field, value) {
    obj[field] = value;
}


对于您的情况,您将执行以下操作:

function getQuantity(data, field) {
  var results = _.map(
    _.where(data, {
      UNDERLYING: product
    }),
    function(r) {
      if (r["QUANTITY"] != 0 && !isInArray(Date.parse(r["REPORT_DATE"]), errorDates)) {
        var returnValue = {
          dt: Date.parse(r["REPORT_DATE"])
        };
        returnValue[field] = r["QUANTITY"] * multiplier;
        return returnValue;
      }
    }
  );
  return results;
}

10-08 09:02
查看更多