CNode

coffeescript中对象数组赋值的问题

问答
Ccuiweiqiang发布于12 年前最后回复12 年前5 回复3813 浏览0 收藏
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)

J
jysperm#1·12 年前

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

C
cuiweiqiang#2·12 年前
J
jysperm#3·12 年前

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

C
cuiweiqiang#4·12 年前
引用 jysperm你还要检查一下 pos 是否是数值格式

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

C
cuiweiqiang#5·12 年前
引用 jysperm你还要检查一下 pos 是否是数值格式

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

参与回复
登录后即可参与回复。登录