Arrays 基于属性值的对象JavaScript筛选器数组

Arrays 基于属性值的对象JavaScript筛选器数组,arrays,node.js,object,javascript-objects,Arrays,Node.js,Object,Javascript Objects,我有一个javascript对象数组。内容是这样的, obj_array = [{ "DATA_ID": 1, "DATA_NAME": "Dim", "DATA_BB_TYP": 2, "DATA_MAC": "5474", }, { "DATA_ID": 3, "DATA_NAME": "Spre", "DATA_BB_TYP": 33, "DATA

我有一个javascript对象数组。内容是这样的,

obj_array = [{
        "DATA_ID": 1,
        "DATA_NAME": "Dim",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "5474",
    },
    {
        "DATA_ID": 3,
        "DATA_NAME": "Spre",
        "DATA_BB_TYP": 33,
        "DATA_MAC": "8e30",
    },
    {
        "DATA_ID": 2,
        "DATA_NAME": "Dimb",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "45e8",
    },
    {
        "DATA_ID": 4,
        "DATA_NAME": "Kht1",
        "DATA_BB_TYP": 35,
        "DATA_MAC": "58d0",
    },
    {
        "DATA_ID": 6,
        "DATA_NAME": "Sens",
        "DATA_BB_TYP": 34,
        "DATA_MAC": "d004",
    }
]
obj_array_retained = 
[{
        "DATA_ID": 1,
        "DATA_NAME": "Dim",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "5474",
    },
    {
        "DATA_ID": 2,
        "DATA_NAME": "Dimb",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "45e8",
    },
    {
        "DATA_ID": 6,
        "DATA_NAME": "Sens",
        "DATA_BB_TYP": 34,
        "DATA_MAC": "d004",
    }
]
我想保留一些对象并删除其余的对象。如果对象属性
DATA\u BB\u TYP
为2或34,则对象将被保留。其他对象将被删除。
obj_数组的结果如下所示

obj_array = [{
        "DATA_ID": 1,
        "DATA_NAME": "Dim",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "5474",
    },
    {
        "DATA_ID": 3,
        "DATA_NAME": "Spre",
        "DATA_BB_TYP": 33,
        "DATA_MAC": "8e30",
    },
    {
        "DATA_ID": 2,
        "DATA_NAME": "Dimb",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "45e8",
    },
    {
        "DATA_ID": 4,
        "DATA_NAME": "Kht1",
        "DATA_BB_TYP": 35,
        "DATA_MAC": "58d0",
    },
    {
        "DATA_ID": 6,
        "DATA_NAME": "Sens",
        "DATA_BB_TYP": 34,
        "DATA_MAC": "d004",
    }
]
obj_array_retained = 
[{
        "DATA_ID": 1,
        "DATA_NAME": "Dim",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "5474",
    },
    {
        "DATA_ID": 2,
        "DATA_NAME": "Dimb",
        "DATA_BB_TYP": 2,
        "DATA_MAC": "45e8",
    },
    {
        "DATA_ID": 6,
        "DATA_NAME": "Sens",
        "DATA_BB_TYP": 34,
        "DATA_MAC": "d004",
    }
]
我正在使用node.jsv6.91


编辑:有人建议我使用过滤器来解决这种问题。使用过滤技术的答案最受欢迎。

您可以尝试以下方法1和2:

方法1:(使用
过滤器

注意:这将返回一个新数组,并且不会修改原始数组

var obj_数组=[{
“数据ID”:1,
“数据名称”:“Dim”,
“数据类型”:2,
“DATA_MAC”:“5474”,
},
{
“数据ID”:3,
“数据名称”:“Spre”,
“数据类型”:33,
“数据MAC”:“8e30”,
},
{
“数据ID”:2,
“数据名称”:“Dimb”,
“数据类型”:2,
“数据MAC”:“45e8”,
},
{
“数据ID”:4,
“数据名称”:“Kht1”,
“数据类型”:35,
“数据MAC”:“58d0”,
},
{
“数据ID”:6,
“数据名称”:“传感器”,
“数据类型”:34,
“数据MAC”:“d004”,
}
];
保留的风险值=[2,34];
var new_obj_array=obj_array.filter(函数(obj)){
if(保留索引of(对象数据类型)=-1){
返回false;
}
返回true;
});

日志(新的对象数组)谢谢。它工作得很好。向上投票。有人建议我使用过滤器。您知道如何使用筛选器解决此问题吗?我已使用
筛选器更新了代码。请看一看。看起来确实更好。