请教如何实现把一个普通Json对象的key/value值赋值到另一个object中同名的key中。
发布于 11 年前 作者 jbasttdi 15480 次浏览 最后一次编辑是 8 年前

大家好,我想实现这样的功能,如有一个mongoose的Schema定义如下: <code> var UserSchema=new Schema({ id:ObjectId, tags:[String], msgbody:String, sms:Boolean, age:Number, createtime:{type: Date, default: Date.now }, bdlocation:BdLocation, items:[Item] });

var Item={ id:String, name:String };

var BdLocation={ id:String, area:String, city:String };

//data示例值 var data={id:‘100’,tags:[‘tag1’,‘tag2’],msgbody:‘hi’,sms:True,age:30,bdlocation:new BdLocation{id:‘200’,area:‘area2’,city:‘gz’},items:[{},{}]};

function docopy(data){ var user = new UserSchema(); //一般是这样一个个赋值 user.id=data.id; user.tags=data.tags; user.msgbody=data.msgbody; user.sms=data.sms; user.age=data.age; user.bdlocation=data.bdlocation; user.items=data.items; //但如果字段多就比较麻烦,效率也不高,请问有没有一些函数可以完成这样的动作。 user=copyValue(data); //不知是否存在这样的一个copy函数??? //或这种需求请问如何实现比较好??谢谢!

user.save(function(err){ if(err){ console.log(err); } }); } </code>

3 回复

谢谢,我现在试着用,好像也可以,不清楚为什么要判断 Array 和 Object? <code> var user= new UserSchema(); for(var key in data){ user[key]=data[key]; console.log(key+’:’+data[key]); } </code>

因为复制数组返回的是数组,复制对象返回的是对象

回到顶部