在D3中对数据对象调用带有多个参数的函数
Call a function with multiple parameters on a data object in D3
我是D3和JS的新手,并试图理解如何在D3中调用具有多个参数的函数。低于我的尝试。问题是我如何让版本2工作?
d3.csv(input_file, function(data) {
var metric = "foo";
// Version 1:
// clean number format. works fine
data.forEach(function(d) {
d[metric] = +d[metric].replace(/,/g,''); //remove thousand separator
return d;
});
//Version 2:
// this doesn't work. why not?
// [Error] TypeError: undefined is not a function (evaluating 'd[metric].replace(/,/g,'')')
data.forEach(function(d) {
return cleanNumberFormat(d, metric);
});
// ...
});
// define a function to be used in several places
function cleanNumberFormat(d, metric) {
d[metric] = +d[metric].replace(/,/g,''); //remove thousand separator
return d;
}
如果删除版本1而保留版本2,代码将正常工作。根本原因是版本1中的这一行:
d[metric] = +d[metric].replace(/,/g,''); //remove thousand separator
注意加号+
。将替换结果从String
类型转换为Number
类型。显然Number
没有replace
功能,所以你在版本2中得到了错误。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆