Javascript 如何从对象生成数组?

Javascript 如何从对象生成数组?,javascript,underscore.js,Javascript,Underscore.js,我有一个对象,每个键的末尾都有一个下划线后的索引,所以我可以做一些事情,尝试将每个键都用相同的索引聚集在一起,得到预期的对象,我不知道如何使用普通java脚本的下划线 var obj = { phoneNumber_0 : "2", phoneNumber_1 : "0", phoneType_0 : "Home", phoneType_1 : "Work" } var expected = [ {number: '2',

我有一个对象,每个键的末尾都有一个下划线后的索引,所以我可以做一些事情,尝试将每个键都用相同的索引聚集在一起,得到预期的对象,我不知道如何使用普通java脚本的下划线

var obj = {
        phoneNumber_0 : "2",
        phoneNumber_1 : "0",
        phoneType_0 : "Home",
        phoneType_1 : "Work"
}


var expected = [
  {number: '2', type: 'home'},
  {number: '0', type: 'work'},
]

您可以为名称和索引拆分对象的键。然后根据需要构建一个新对象,并指定实际属性的值

var object={phoneNumber_0:“2”、phoneNumber_1:“0”、phoneType_0:“Home”、phoneType_1:“Work”},
结果=[];
Object.keys(对象).forEach(函数(k){
var p=k.分割(“uu”);
结果[p[1]]=结果[p[1]]| |{};
结果[p[1]][p[0]]=对象[k];
});
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
我想这会满足您一直在寻找的功能,
var obj={
电话号码_0:“2”,
电话号码_1:“0”,
电话类型_0:“主页”,
电话类型_1:“工作”
}
var finalArray=[]
Object.keys(obj.map)((键,索引)=>{
if(obj['phoneNumber.'+索引]| | obj['phoneType.'+索引])
push({number:obj['phoneNumber\'+index],type:obj['phoneType\'+index]})
})

console.log(finalArray)
这将是您预期的结果

var obj = {
  phoneNumber_0 : "2",
  phoneNumber_1 : "0",
  phoneType_0 : "Home",
  phoneType_1 : "Work"
}

var expected = []
for(var key in obj){
  if(key.indexOf('phoneNumber_') === 0){
    var kn = key.replace('phoneNumber_', '')
    expected.push({number: obj[key], type: (obj['phoneType_' + kn]||'').toLowerCase()})
  }
}

console.log(expected)

您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请提供一个。你能提供你想要发生的事情的精确说明吗,包括任何和所有规则、这些规则的例外情况、拐角情况、特殊情况、边界情况和边缘情况?您能否提供示例输入和输出,以演示在正常情况下,以及在所有异常、拐角情况、特殊情况、边界情况和边缘情况下,您预期会发生什么?请同时提供一个答案。你的问题很不清楚。“将具有相同索引的每个对象聚集在一起并得到预期的obj”是什么意思?什么是“预期obj”?