coffeescript中对象数组赋值的问题
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!!!逗比了。