[{
_id: 55 d5f0c8aead93d1d97f83c3,
socialAuth: {
linkedin: [],
instagram: [],
youtube: [],
twitter: [{
screenName: "Ammruth"
}],
facebook: []
}
}, {
_id: 55 d5f0c8aead93d1d97f83c3,
socialAuth: {
linkedin: [],
instagram: [],
youtube: [],
twitter: [{
screenName: "shamsher"
}],
facebook: []
}
}]
我需要从上面的数组对象打印来自twitter内部数组对象的screenNames。
答案 0 :(得分:1)
下面是一个vanilla JS方法。你真的不需要Lodash。
var names = [];
arr.forEach(function(user){
names.push(user.socialAuth.twitter[0].screenName);
});
arr
是您在上面列出的数据结构。
答案 1 :(得分:1)
这适用于每个用户的多个screenNames:
var twitters = _.pluck(data, 'socialAuth.twitter');
var accounts = _.flatten(twitters);
var names = _.pluck(accounts, 'screenName');
这种方法很慢;一个更有效的方法是:
var names = [];
_.each(data, function (a) {
var theseNames = _.pluck(a.socialAuth.twitter, 'screenName');
names = names.concat(theseNames);
});
答案 2 :(得分:1)
如果用户有多个屏幕名称,这也适用:
var users = [your array];
var screenNames = _(users).pluck('socialAuth.twitter').flatten().pluck('screenName').value().join(', ');
以字符串逗号和空格分隔返回屏幕名称列表 这是使用lodash v3.10.1
完成的