如何从我的数组列表中删除 __ob__: Observer?

Kha*_*bib 3 vue.js vuejs2

我有一个数组

data = [38589, 3, __ob__: Observer];
Run Code Online (Sandbox Code Playgroud)

我想发送一个 put 请求 API,主体发送这个数组。并得到 400 错误?是不是这__ob__: Observer事是我的问题来发送这个数据?如果它是影响错误的那个,我能知道如何从我的数组中删除它吗?

小智 8

我知道这已经 3 个月了,但你也可以使用它

const final_data = Array.from(data);
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,扩展运算符或 object.assign() 也不起作用。接受的答案是我唯一可以开始工作的答案。 (4认同)

Ter*_*rry 7

如果您想在没有观察者的情况下获得数组的最终值,您可以将其转换为 JSON,然后再返回:

const finalData = JSON.parse(JSON.stringify(data));
Run Code Online (Sandbox Code Playgroud)

  • 我不知道是否有人试图衡量哪种方法更有效,所以我使用了一个简单的比较模型。如果有人以更合适的方式证实这一点,将受到欢迎。我的测试标准是比较我知道如何转换的 3 种方法:`Object.assign`、`JSON.stringify into JSON.parse`、`const unwrapped = { ...this.vars }`。它循环了 100000 次迭代,在我的计算机 `const unwrapped = { ...this.vars }` 中它比其他的要快得多,总共 `1462.4199999962002 ms`。其他分别为“5084.745000000112 ms”和“8934.004999988247 ms”。 (2认同)