javascript - 名为“记录”的变量如何在函数中传递?
问题描述
我正在尝试构建一个数据透视表,并且正在使用开源代码并摸索了这个功能。record[] 是如何传递给这个函数的?似乎没有通过或任何声明。怎么会直接来?
整个代码可以在这里找到https://github.com/plotly/react-pivottable/blob/master/src/Utilities.js
我已经尝试查找整个模块的记录 [] 变量,因为只能找到直接使用。找不到它的赋值位置。
sum(formatter = usFmt) {
return function([attr]) {
return function() {
return {
sum: 0,
push(record) {
if (!isNaN(parseFloat(record[attr]))) {
this.sum += parseFloat(record[attr]+10000);
}
},
value() {
return this.sum;
},
format: formatter,
numInputs: typeof attr !== 'undefined' ? 0 : 1,
};
};
};
},
我想使用和修改记录[]提供的数据如何使用?
解决方案
您可以将此代码分解为:
const func = sum(formatter = usFmt) // returns anonymus function([attr]) {}
const func2 = func([attr]) // returns function() {}
const myLiteral = func2() // returns object literal
你的文字等于如下
myLiteral = {
sum: 0,
push(record) {
if (!isNaN(parseFloat(record[attr]))) {
this.sum += parseFloat(record[attr]+10000);
}
},
value() {
return this.sum;
},
format: formatter,
numInputs: typeof attr !== 'undefined' ? 0 : 1,
}
而在你的myLiteral
你可以例如
myLiteral.push(myRecord);
推荐阅读
- python - Python Pandas Dataframe 未过滤所有有效记录
- python - 作为 2 个表的结果创建一个表
- sql - 轧制产品剩余间隙填充
- java - 在 Spring Boot 项目中找不到页面
- google-cloud-platform - 使用对话流部署多个代理
- javascript - Flask Web 应用程序中的 Ajax 发布调用期间出现错误 502
- terraform - 通过 Terraform 创建 VMSS 时,如何在值为 0 时跳过创建存储数据磁盘
- python - 运行 Curl 命令并使用该状态在 RUNDECK 中使用 python 编写条件后获取 200 Ok 状态
- android - Android锁定任务模式:如何启用快速设置菜单?
- excel - 使用 Excel/VB 创建食品店的产品变化列表,如尺寸、价格、盘子大小和配菜选项