- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个简单的 javascript 语法问题。我在下面有这个链接,它有一个使用 d3.js 呈现条形图的代码片段。
https://plnkr.co/edit/HQz1BL9SECFIsQ5bG8qb?p=preview
我不明白的是..
在script.js文件中,有一条语句,
data.forEach(function(d) {
d.date = parseDate(d.date);
d.value = +d.value;
});
如果您像这样删除加号前缀的 d.value,
data.forEach(function(d) {
d.date = parseDate(d.date);
d.value = d.value;
});
如您所见,y 轴上的刻度值发生了变化。但据我所知,在值之前加上 + 意味着将任何值转换为数字类型。
如果您查看 bar-data.csv 文件中的数据,所有值都是数字,所以我认为无论是否删除 + 都不会真正改变...?
最佳答案
“...如果您查看 bar-data.csv 文件中的数据,所有值都是数字”...不,实际上在文件加载后它们不是数字/parsed: 它们是字符串。
发生的事情是 d3.csv
,它使用 dsv.parse
,将所有字段加载为字符串。你可以在 API 中看到这个:
If a row conversion function is not specified, field values are strings. For safety, there is no automatic conversion to numbers, dates, or other types. (emphasis mine)
我们可以很容易地证明这一点。假设我们有这个 CSV,以数字作为值:
foo,bar
17,34
42,12
由于 Stack 片段不允许我们保存 CSV 文件,因此我将在此处使用 d3.csvParse
而不是 d3.csv
,但结果是相同。查看控制台:
var csv = `foo,bar
17,34
42,12`;
var data = d3.csvParse(csv);
data.forEach(function(d) {
for (key in d) {
console.log(d[key] + ": " + typeof d[key])
}
})
<script src="https://d3js.org/d3.v5.min.js"></script>
现在让我们使用一元加号来仅转换 foo
列中的值:
var csv = `foo,bar
17,34
42,12`;
var data = d3.csvParse(csv, row);
data.forEach(function(d) {
for (key in d) {
console.log(d[key] + ": " + typeof d[key])
}
})
function row(d) {
d.foo = +d.foo;
return d;
}
<script src="https://d3js.org/d3.v5.min.js"></script>
PS:如果您删除一元加号,只是为了解释您的 plunker 中的行为:CSV 中较高的数字是 478,用于轴的域。然而,去掉一元加号,更高的值变成了“53”,作为一个字符串,它比“478”高:
console.log("53" > "478")
关于javascript - 这里的加号有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51008046/
最近有人告诉我,+ (前一个模式/字符的一次或多次出现)不是基本正则表达式的一部分。甚至写为 \+ 时也不行. 这是关于最大兼容性的问题。 我的印象是…… echo "Hello World, I a
我正在寻找电话号码的正则表达式,但似乎找不到我需要的东西。 要求 以加号(可选)开头,例如。 +442021234 允许括号(可选)例如。 (+44)2021234 允许任意长度的数字 允许数字之间的
假设我使用 gsub 并希望从字符串中删除以下 (=,+,-) 符号并替换为下划线。 有人可以描述当我尝试使用带加号 (+) 的 gsub 时发生的情况吗? test<- "sandwich=brea
我一直在寻找一种方法来将我自己的自定义符号字符添加到正数和负数中,但似乎没有一种标准的方法可以做到这一点。 IOStreams 中的加减号是否已国际化?我能找到的最接近覆盖它的是 std::money
过去几天我一直在开发菜单。它将用作可扩展/可折叠(甚至是一个词吗?)菜单。现在我让菜单默认垂直变大,然后当你点击“+/-”按钮时,尺寸垂直减小。你再次点击它,然后它在垂直方向上变大......等等。
你好,我正在阅读 Mach7 的以下代码(顺便说一句,看起来不错,我想知道为什么 c++17 没有采用它,但那是题外话……) bool operator==(const Term& left, con
我正在尝试通过玩 Arduino Uno 来学习 C。我正在审查 code for the Colorduino library on github .我想知道 ++ 在应用于结构时如何工作。 在 C
我正在使用 PHP 和我的短信服务提供商提供的 API key 向手机发送短信。 我发送的短信完美地到达了目标手机,但问题是当我有一个 "+" 登录我的消息时 "+" 没有出现在手机。这可能是因为 "
我一直在寻找有关立即调用函数的信息,在某个地方我偶然发现了这种表示法: +function(){console.log("Something.")}() 有人可以向我解释一下函数前面的 + 符号的含义
mvn dependency-tree有什么区别'+' 和 '\' 之间的输出。这对我来说似乎相当随意,但我确定这不是...... +- com.tom:artifact:pom:6.0.0:comp
抱歉,如果这些问题是 JS 的基础知识之一。 问题 1。 我试图让代码检测位于外部数组内部的内部数组, 数组的结构是这样的; var array = ['鲍勃', ['蒂姆', '凯蒂', '佐伊']
我正在制作一个计算器程序,但在使用加法功能时遇到问题。我有其他功能(“/”、“-”、“*”)工作,但加号(“+”)不起作用。 html 和 JavaScript 包含在下面... RDaniel
这个问题已经有答案了: How to encode the plus (+) symbol in a URL (6 个回答) 已关闭 3 个月前。 我找不到任何地方,我认为这是独特的问题。 我想添加以
这是我在网上找到的一个正则表达式,似乎在简单的电子邮件地址验证方面做得很好。问题是它不允许在电子邮件中使用 +,例如 my+email@domain.com。我不擅长正则表达式,那么如何在不破坏整个东
我无法下载图片: http://www.wallpick.com/wp-content/uploads/2014/02/08/Water+Sports_wallpapers_242-640x480.j
我想知道如何在 Javascript 中将变量作为 +4 传递,然后在 php 中将其作为 +4 检索。 无论我做什么,每当我存储一个+4",并验证它是这样存储的,当我检索它时,+ 就消失了,我所有的
这个问题的答案是community effort 。编辑现有答案以改进这篇文章。它目前不接受新的答案或互动。
这个问题的答案是community effort 。编辑现有答案以改进这篇文章。它目前不接受新的答案或互动。
这个问题的答案是community effort 。编辑现有答案以改进这篇文章。它目前不接受新的答案或互动。
谁能帮助我理解使用 isinstance 时加号 (+) 的用途。 In [76]: isinstance('qwert', string) Out[76]: True In [77]: isinst
我是一名优秀的程序员,十分优秀!