Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';[对象对象]';信息输入。减少_Javascript_Object_Reduce_Arrow Functions - Fatal编程技术网

Javascript ';[对象对象]';信息输入。减少

Javascript ';[对象对象]';信息输入。减少,javascript,object,reduce,arrow-functions,Javascript,Object,Reduce,Arrow Functions,我正在学习JS,并试图找出: 出现在[对象]控制台中的原因是什么 const arr = [true,1,'message1','message2'] const arr1 = arr.reduce( (acc, rec) => ({ ...acc, [`field${acc}${arr.indexOf(rec) + 1}`]: rec}), {} ) 控制台结果: [object Object] { field[object Object]1: true, fiel

我正在学习JS,并试图找出: 出现在[对象]控制台中的原因是什么

const arr = [true,1,'message1','message2']
const arr1 = arr.reduce(
    (acc, rec) => ({ ...acc, [`field${acc}${arr.indexOf(rec) + 1}`]: rec}),
{}
  )
控制台结果:

[object Object] {
  field[object Object]1: true,
  field[object Object]2: 1,
  field[object Object]3: "message1",
  field[object Object]4: "message2"
}

未标记模板文本中的
${acc}
acc
转换为字符串。由于它是一个对象,并且(显然)没有自定义的
toString
,因此它将转换为
“[对象]”


我不知道你想在那里做什么,但是如果你想通过下一个占位符(
${arr.indexOf(rec)+1}
)中的索引索引到
acc
,不要将它们分开,把它们放在同一个占位符中。

这里是正确的一个:

const arr1 = arr.reduce(
    (acc, rec) => {return { ...acc, [`field${arr.indexOf(rec) + 1}`]: rec}},
{}
  )
另外,您需要知道更好的方法是添加第三个参数“index”来替换“arr.indexOf(rec)”,这样代码看起来:

const arr1 = arr.reduce(
    (acc, rec, index) => {return { ...acc, [`field${index + 1}`]: rec}},
{}
  )

where console.log()code btw?旁注:您说过您只是在学习JS,所以有一些建议:不要使用
reduce
,除非您正在进行函数编程,并且传递给
reduce
的函数是在别处定义并重用的实用函数。如果您没有使用预定义的实用程序函数执行FP,只需使用循环即可。写起来更简单,读起来也更简单<代码>减少被过度使用。引用:“我几乎每次使用数组#reduce都感到遗憾。对我的旧代码的当前维护者来说,是的,这本应该是一个for循环,我很抱歉。”这是学习课程的任务,主要规则是只使用reduce。@Nurbek-那么,尽管课程可能提供正确的技术信息,但我不会依赖它来获得最佳实践