Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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_Ruby_Each_Is Empty - Fatal编程技术网

Javascript 如何按嵌套参数分组

Javascript 如何按嵌套参数分组,javascript,ruby,each,is-empty,Javascript,Ruby,Each,Is Empty,我如何才能改进这段代码,使其不使用那么多的u。每个和by并不总是验证其属性的对象空性 _.each(initial_obj, function(value, key){ _.each(value, function(value2, key2){ _.each(value2, function(value3, key3){ _.isEmpty(new_obj[key3]) && (new_obj[key3] = {}); _.

我如何才能改进这段代码,使其不使用那么多的u。每个和by并不总是验证其属性的对象空性

  _.each(initial_obj, function(value, key){
    _.each(value, function(value2, key2){
      _.each(value2, function(value3, key3){
        _.isEmpty(new_obj[key3]) && (new_obj[key3] = {});
        _.isEmpty(new_obj[key3][key]) && (new_obj[key3][key] = []);
        new_obj[key3][key][key2] = value3;
      })
    })
  })


old_obj: {'a': {'en', 'es', 'pt'}, 'b': {'en', 'es', 'pt'}, 'c': {'en', 'es', 'pt'}})

  new_obj: {'en': ['a': [], 'b': [], 'c': []},
                          'es': {'a': [], 'b': [], 'c': []},
                          'pt': {'a': [], 'b': [], 'c': []}
                          })

使用和迭代对象的键。然后迭代内部数组,使用。对于数组中的每个字符串,使用空数组的

const obj={'a':['en','es','pt'],'b':['en','es','pt'],'c':['en','es','pt'];
const result=Object.keys(obj).reduce((r,key)=>{
obj[key].forEach((str)=>r[str]=Object.assign(r[str]||{},{[key]:[]);
返回r;
}, {});
控制台日志(结果)

h = { a: ['en', 'es', 'pt'], b: ['en', 'es', 'pt'], c: ['en', 'es', 'pt'] }

values = h.first.last
  #=> ["en", "es", "pt"]
h.keys.map { |k| [k, values.map  { |v| [v,[]] }.to_h] }.to_h
  #=> {:a=>{"en"=>[], "es"=>[], "pt"=>[]},
  #    :b=>{"en"=>[], "es"=>[], "pt"=>[]}, 
  #    :c=>{"en"=>[], "es"=>[], "pt"=>[]}}

使用新的有效数据打开新问题。;]