我有一个返回数组的函数,如何用参数定义返回数组中的一列名称?
假设不是字段“ 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;
}