有快速过滤的对象的方法?
发布于 8 年前 作者 yaojaa 6103 次浏览 来自 问答

数据库返回: {"_id":“56a96ab80a41e0f0333bc19e”, “accessToken”:“00f38da0-0f4f-4409-bcb7-24c776d4a653”, “avatar”:"", “user_name”:“2696071536”, “email”:"2696071536@qq.com", “password”:“e9e9b762c20d4ad091fdf54d4bb828cc”, "__v":0, }

如何快速过滤 直返会需要的 { “avatar”:"", “user_name”:“2696071536”, “email”:"2696071536@qq.com", }

8 回复

可以看一下这个: https://github.com/JSSDKCN/node-form-validator var extractedData = validator.json.extract(json, conf));

去lodash找找。。。

use lodash _.pick

var src = {
	"_id":“56a96ab80a41e0f0333bc19e”, 
	“accessToken”:“00f38da0-0f4f-4409-bcb7-24c776d4a653”, 
	“avatar”:"", 
	“user_name”:“2696071536”, 
	“email”:"2696071536@qq.com", 
	“password”:“e9e9b762c20d4ad091fdf54d4bb828cc”, "__v":0, 
}

var dst = {
	avatar: src.avatar, 
	user_name: src.user_name, 
	email: src.email, 
}

不知道是不是你想要的。

这种比较简单的我一般都自己写。 因为要导入一个lodash感觉很麻烦(前端)。。 如果要效率的话还是导包吧

感谢3楼 就是lodash的 picker 。其它同学也很给力,当然自己写个也不难,但本人从来就现成的不自己写。 果断引入lodash。 简单粗暴 var object = { ‘a’: 1, ‘b’: ‘2’, ‘c’: 3 };

_.pick(object, [‘a’, ‘c’]); // → { ‘a’: 1, ‘c’: 3 }

可以用mongoose的select来过滤的啊 或者类似于

db.inventory.find( { type: 'food' }, { item: 1, qty: 1 } )
回到顶部