变量A在起作用,但变量B显示NaN,为什么?
{
"id": "5c114382-f9da-4dc2-8371-339659a1c8ec",
"resourceId": "5c0a7671-f821-4131-9473-3fd1e80dbac1",
"interface": "get_metrics",
"inputs": {
"stage": "TEST"
},
"outputs": {
"metrics": {
"devices_by_type": {
"MX480": {
"failed": 10,
"total": 1235
},
"EX4200": {
"failed": 3,
"total": 1490
},
"ETX-203AX": {
"failed": 123,
"total": 9643
},
"MX960": {
"failed": 52,
"total": 1211
},
"GE114": {
"failed": 1200,
"total": 12530
},
"QFX5100": {
"failed": 100,
"total": 950
},
"MX240": {
"failed": 10,
"total": 245
},
"GE114Pro": {
"failed": 0,
"total": 125
}
},
"state": "successful",
"reason": "",
"progress": [],
"providerData": {},
"createdAt": "2018-12-12T17:21:06.174Z",
"updatedAt": "2018-12-12T17:21:06.918Z",
"resourceStateConstraints": {},
"executionGroup": "lifecycle"
}
答案 0 :(得分:1)
+
是一个串联运算符,未定义用于数组。引擎将您的数组转换为字符串,而不是将它们串联
答案 1 :(得分:1)
Javascript根据操作符类型转换任何变量。对于+
,运算符数组将转换为字符串"1,2,3,4" + "5,6,7,8"
对于-
,运算符数组将转换为数字,这将导致NaN
。
答案 2 :(得分:0)
这些运算符称为“一元加”和“一元否定”。
UP尝试将操作数转换为Number
。如果Array
的长度大于1,则将其转换为String
,则生成的操作数为Unary Plus(ed),如果其中一个为String
,则将它们都连接为一个{{ 1}}。
UN不连接,因此,如果未转换为String
而不是Number
,则跳过所有这些步骤。
以下是发生的情况的一个示例:
NaN