coffeescript中对象数组赋值的问题
发布于 10 年前 作者 cuiweiqiang 3470 次浏览 最后一次编辑是 8 年前 来自 问答
Dict.findOne {key:'recommend'},(err,r)->
  pos=req.body.position
  obj={}
  obj.list = []
  if r
    obj.list=r.list
  obj.list[pos]=
    cover: req.body.cover
    id: req.body.id
    type: req.body.type
  console.log "================================",obj.list[pos]
  console.log "********************************",obj.list
  console.log "--------------------------------",obj

现有如上代码,如果将pos替换为具体数值,例如4,则在obj.list中可以发现新添加的元素,但是采用变量的方式则无法赋值,在这样的情况下obj.list[pos]的确有值。 请大神帮忙看下是什么原因?

5 回复

你的 pos 是哪来的,确定有值么? 另外使用 coffee 的时候遇到问题,最好先看一下编译后的 js

@jysperm 确定有值 在页面通过post方式传递过来,打印出来有值

你还要检查一下 pos 是否是数值格式

@jysperm 还是不行,我强制使用Number转换最后结果还是一样,obj.list[pos]可以打印出目标值,但是在最后的obj.list依然没有新添加的项

@jysperm 多谢兄弟帮忙了,已经解决问题了。把所有变量都打印出来了才发现req.body.position undefined,仔细检查发现是前端发送ajax请求的时候 将数据体内的属性position写错为postition!!!逗比了。

回到顶部