javascript - 按值过滤 JavaScript 对象

标签 javascript

我有这个对象数组:

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);
}

Here is a working example

关于javascript - 按值过滤 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565902/

相关文章:

javascript - node.js 中的二进制结构

javascript - 在 Fabric 2.3 版本中,SVG 图像未作为标准 View 加载

javascript - 如何应用[^0-9]正则表达式模式javascript

javascript - 让 div 内的所有链接都调用相同的函数?

javascript - 祝福名单失败

javascript - 将字符串转换为有效的 json 对象

php 内的 javascript 函数在 chrome 中不起作用

javascript - 为什么我的代码在写入文件时收到未定义的信息?

javascript - 保存时自动编译和压缩js文件的脚本/应用程序

javascript - 如何使 Bootstrap .nav-list 隐藏和显示不同的 div 元素?