如何通过包含特定字符串的属性筛选JSON数据
How to filter JSON data by properties that contain certain strings?
我有一个JSON对象,看起来像这样:
{
'name': 'Bob',
'friends': [
{
'name' : 'Ashley (Family)'
},
{
'name' : 'Steven (Non-Family)'
},
{
'name' : 'Chris (Family)'
}
]
}
如何过滤以上内容,使其只返回作为家人的朋友?即名字中包含"(家人)"的朋友?
function filterFriends (friends) {
return friends.filter(function(i) {
if (i.name.indexOf('(Family)') > -1) {
return i.name;
}
});
}
但以上似乎不起作用。。。我不知道我是否走在正确的轨道上?
除了a)使用毫无意义的短语"JSON对象"和b) 如果你想把它写进一个函数 ES5var data = {
name: 'Bob',
friends: [
{
name: 'Ashley (Family)'
},
{
name: 'Steven (Non-Family)'
},
{
name: 'Chris (Family)'
}
]
};
var family = data.friends.filter(f => f.name.indexOf('(Family)') > -1);
console.log(family);
// [{name: 'Ashley (Family)'}, {name: 'Chris (Family)'}]
function isFamily(name) {
return name.indexOf('(Family)') > -1;
}
function getFamily(friends) {
return friends.filter(f => isFamily(f.name));
}
var family = getFamily(data.friends);
var family = data.friends.filter(function(f) {
return f.name.indexOf('(Family)') > -1);
});
console.log(family);
Filter方法应该始终返回布尔值,这看起来就像总是返回带有名称的字符串。
查看文档中的.filter方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
- 如何筛选对象的数组属性
- 如何基于多个属性筛选记录并获取计数
- AngularJS-筛选对象中的选定属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 如何按对象数组中的数组属性进行筛选
- 如何筛选所有属性都是对象的对象
- 未捕获的类型错误: 无法读取未定义的属性“筛选器”
- JQuery多属性筛选器不起作用
- AngularJS ng通过对象中的一个属性和一个文本框重复筛选
- 根据下拉列表中所选值的其他属性筛选本地剑道数据源
- 如何根据多个数据属性筛选搜索结果
- 按属性的属性筛选ngOptions
- 根据自定义属性筛选SELECT选项
- 使用JavaScript按属性筛选网店产品
- 如何通过包含特定字符串的属性筛选JSON数据
- 数组中.按对象属性筛选,参数未定义
- 通过空属性筛选数组
- 如何使用计算属性筛选数组
- 如何根据数据属性筛选选择器结果
- 如何根据属性筛选和排列对象数组