【发布时间】:2021-11-19 10:48:40
【问题描述】:
我有一个数组:const arr = ['one', 'two', 'three']
我有一个函数,它接受一个字符串数组并返回一个对象数组:
const func = (arr) => arr.map(item => ({str: item}));
由于某种原因,当我调用此函数并打印结果时,我得到一个 proxy 对象数组而不是普通对象..
// call and print
const arr = ['one', 'two', 'three'];
const res = func(arr);
console.log(res);
// console result
(3) [{...}, {...}, {...}]
0: proxy {str: 'one'}
1: proxy {str: 'two'}
2: proxy {str: 'three'}
问题是,只有当我在 func 函数中使用 return 时才会发生这种情况,因为当我在 func 中打印映射数组而不使用 return 语句时,我会得到预期的结果:
(3) [{...}, {...}, {...}]
0: {str: 'one'}
1: {str: 'two'}
2: {str: 'three'}
注意:我将 react.js 与 next.js 一起使用,并从另一个文件导入 func。
【问题讨论】:
-
我的浏览器和我的节点都没有这样做。你在用什么运行它?
-
@AndreyTyukin 用下一个反应应用程序
-
我的意思是:您使用的是什么运行时环境?由于您已包含输出中的数字,因此它看起来不像节点的输出。 React 和 Next 是一些似乎与您的问题没有任何关系的框架。
-
@AndreyTyukin 节点
-
节点在服务器端直接打印
0:、1:、2:到控制台,没有任何中介?那么您能否更改您的代码以使用console.log(process.version, res)记录节点版本,并告诉我们输出是什么?我不知何故有这样的印象,节点和您在上面复制粘贴的输出之间必须有某种中介。
标签: javascript reactjs json next.js