向我解释这个数组相减项叫什么

时间:2018-12-12 17:38:44

标签: javascript

变量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"
}

3 个答案:

答案 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