Javascript 将简单对象转换为复杂数组

Javascript 将简单对象转换为复杂数组,javascript,arrays,object,Javascript,Arrays,Object,我一直在尝试将下面的对象映射到下面的数组,我对映射/排序和减少是非常陌生的。甚至有可能获得想要的结果吗 发件人: 致: 以旧的方式尝试此代码示例: var res=[] var obj={ 拳击手:[], brabancon:[], 布里亚德:[], 斗牛犬:[波士顿,法语] } 对于obj中的var键{ if!obj[key].length{ 再推{ 狗种:钥匙 } }否则{ 对于变量i=0;i value.length>0?值:[].mapx=>{dogbride:key+x?`${x}`

我一直在尝试将下面的对象映射到下面的数组,我对映射/排序和减少是非常陌生的。甚至有可能获得想要的结果吗

发件人:

致:


以旧的方式尝试此代码示例:

var res=[] var obj={ 拳击手:[], brabancon:[], 布里亚德:[], 斗牛犬:[波士顿,法语] } 对于obj中的var键{ if!obj[key].length{ 再推{ 狗种:钥匙 } }否则{ 对于变量i=0;i 常量输入={ 拳击手:[], brabancon:[], 布里亚德:[], 斗牛犬:[“波士顿”、“法国”], }; console.log[].concat…Object.entrieInput.map[键,值]=> value.length>0?值:[].mapx=>{dogbride:key+x?`${x}`:} ; 使用map不是一个好方法,因为在某些情况下,每个键需要有多个元素。您可以使用reduce。这里有一个例子

组织变量={ 拳击手:[], brabancon:[], 布里亚德:[], 斗牛犬:[波士顿,法语] } var arr=Object.keysorg.reduceac,key=>{ iforg[key].length{ org[key].forEachv=>acc.push{dogbride:`${key}${v}}; }否则{ acc.push{狗品种:键}; } 返回acc; }, [];
console.logarr 使用Object.keys将对象的键获取到数组中。然后循环遍历数组并将每个对象推入新数组

var obj = {
   boxer: [],
   brabancon: [],
   briard:  [],
   bulldog: [ "boston", "french" ]
}

var arr = Object.keys(obj);
var newArr =[];

arr.forEach(function(element) {
  console.log(element);
  newArr.push({'breed':element})
});
请参阅以下连结:

您能将您尝试过的代码添加到问题中吗?好的,您对这些方法没有任何经验。试着做点什么,即使它不起作用。然后回来寻求SO社区的帮助。你的问题还没有很好地构建。在共享代码之前列出问题。除了建议之外,你还需要从陈述问题开始,重点关注研究后的差距。然后描述到目前为止您的策略、代码设置+条件以及错误/问题。同时陈述你已经知道的“明显的”背景,以便人们理解你的尝试。另见,
[
  {dogBreed: 'boxer'},
  {dogBree: 'brabancon'},
  {dogBree: 'briard'},
  {dogBree: 'bulldog (boston)'},
  {dogBree: 'bulldog (french)'}
]
var obj = {
   boxer: [],
   brabancon: [],
   briard:  [],
   bulldog: [ "boston", "french" ]
}

var arr = Object.keys(obj);
var newArr =[];

arr.forEach(function(element) {
  console.log(element);
  newArr.push({'breed':element})
});
let testing = {
  boxer: [],
  brabancon: [],
  briard: [],
  bulldog: [ "boston", "french" ]
}

function convertToObjectArray(testing, objKey) {
  let array = [];
  Object.keys(testing).forEach(function(el) {
    if(testing[el] && testing[el].length > 0) {
      testing[el].forEach(function(e) {
        let obj = {};
        obj[objKey] = el + ' (' + e + ')';
        array.push(obj);
      });
    }
    else {
      let obj = {};
      obj[objKey] = el;
      array.push(obj);
    }
  });
  return array;
}

let finalArray = convertToObjectArray(testing, 'dogBreed');
console.log(finalArray);