请考虑以下情况:
const JSONString = `["a", "b"]`;
console.log(JSON.parse(JSONString).push("c")); //returns 3 (length)
为什么
JSON.parse
返回数组并允许使用Array
方法,但是当您实际尝试push
数组中的某些内容时,它返回长度吗?
如果执行以下操作,它将起作用:
const JSONString = `["a", "b"]`;
console.log(JSON.parse(JSONString).concat("c"));
上面是原始问题,下面是昆汀正确回答的问题。 性能问题:
在上述情况下更可取:concat
或push
,其中concat
仅一行,但返回一个新数组。 push
需要更多代码行,但保留原始数组?
答案 0 :(得分:8)
为什么JSON.parse返回数组
因为它是一个数组
允许使用数组方法
因为它是一个数组
当您实际尝试将某些内容推入数组时,它会返回长度吗?
因为push
函数的返回值是数组的长度
引用MDN:
push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
JSON.parse与此无关:
const array = ["a", "b"];
const return_value = array.push("c");
console.log({ array, return_value });
在上述情况下将是可取的:concat或push,其中concat只是一行,但返回一个新数组。 push需要更多代码行,但保留原始数组?
如果您需要原始数组,那么答案很明显。
如果您不这样做,那就是舆论问题。