Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 过滤对象数组_Javascript_Arrays_Object_Underscore.js - Fatal编程技术网

Javascript 过滤对象数组

Javascript 过滤对象数组,javascript,arrays,object,underscore.js,Javascript,Arrays,Object,Underscore.js,我有一系列id为/nume的数组(对象): Object { Biosecuritate=[Object {id=1,nume="bio"}, Object {id=5,nume="securitate"}], Deseuri=[Object {id=2,nume="des"}] , Reglementari=[Object {id=3,nume="Reglementari"}], Sol/Subsol=[Object {id=4,nume="Sol/Subsol"}] } va

我有一系列id为/nume的数组(对象):

Object { Biosecuritate=[Object {id=1,nume="bio"}, 
Object {id=5,nume="securitate"}], Deseuri=[Object {id=2,nume="des"}] , 
Reglementari=[Object {id=3,nume="Reglementari"}], 
Sol/Subsol=[Object {id=4,nume="Sol/Subsol"}] }

    var filtered = _.filter(domenii, function(item) {
            return (item[0].nume == "Reglementari" || item[0].nume == "Sol/Subsol")
    });
    console.log("filtered=",filtered);
    console.log("domenii=",domenii);
我试图从“矩阵”中“提取”2个对象,但在我做了过滤之后 它变成:

[ [Object {id=3,nume="Reglementari"}], [Object {id=4,nume="Sol/Subsol"}] ]

如何将“filtered”转换为初始类型,或在不更改其“form”的情况下对其进行过滤?

domenii
的类型更改为平面数组可能会更好,但也可以将结果展平。将此添加到末尾:
filtered=u.flant(filtered)

要维护对象,可以减少而不是过滤:

var domenii = {
  Biosecuritate: [{id:1,nume:"bio"}, {id:5,nume:"securitate"}], 
  Deseuri: [{id:2,nume:"des"}] , 
  Reglementari: [{id:3,nume:"Reglementari"}], 
  "Sol/Subsol": [{id:4,nume:"Sol/Subsol"}]
}

var reduced = _.reduce(domenii, function(memo, item, key){
  if(item[0].nume == "Reglementari" || item[0].nume == "Sol/Subsol"){
    memo[key] = item;
  }
  return memo
}, {})

console.log("reduced=",reduced);
console.log("domenii=",domenii);

哇@Benjaminben,不要这样编辑别人的代码。您完全使编辑的好部分无效。“数组数组(对象)”-它实际上是一个具有数组值的对象Objects@meagar-它是由某种检查员粘贴的。。我只是更改了格式,这样你就可以玩了it@benjaminbenben:如果您想建议对现有代码进行改进,这是一个有效的答案。@DanielR它实际上并没有更改代码,只是更改了格式。(我不能投票支持您的答案,因为我没有15个代表点,这很有用)@MihaiGodeanu获得代表的一个简单方法是,点击你最喜欢的答案旁边的绿色复选标记,接受别人给你的答案