我有这个对象数组:
var result = [
{
appAddress:"127.0.0.1",
name:"AppServer1",
dbConnection:""
},
{
appAdress:"",
name:"DBServer1",
dbConnection:"Server=.;Database=master;Integrated Security=SSPI"
}];
现在我只需要获取名称值(放入数组中),其中 appAddress 不为空。我尝试了 array.filter() 和 $.map() 但这些方法似乎都不能满足我的要求。
这是我尝试过的:
var appServers = $.map(result, function (val, key) {
return (key == 'appAddress' && val.length > 0) ? key : null;
});
和
var appServers = result.filter(function (entry) {
return entry['displayName'];
});
最佳答案
首先,您的对象定义是错误的。您需要使用 :
而不是 =
。
接下来,您可以使用一个简单的 for 循环来完成此操作:
var output = [];
for (var i = 0; i < result.length; i++) {
var item = result[i];
if (item.appAddress) output.push(item.name);
}
关于javascript - 按值过滤 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565902/