Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/125.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
如何在不使用Object.assign的情况下使用javascript将数组转换为对象_Javascript_Arrays - Fatal编程技术网

如何在不使用Object.assign的情况下使用javascript将数组转换为对象

如何在不使用Object.assign的情况下使用javascript将数组转换为对象,javascript,arrays,Javascript,Arrays,我有一个数组 [{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}] 我想得到以下格式的对象 {title:"test1",message1:"message1",message2:"message2"} 我正在尝试下面的代码,但没有运气 var rv = {}; for (var i = 0; i < messageArray.length; ++i) if (messageArray[i]

我有一个数组

[{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}]
我想得到以下格式的对象

{title:"test1",message1:"message1",message2:"message2"}
我正在尝试下面的代码,但没有运气

var rv = {};
for (var i = 0; i < messageArray.length; ++i)
if (messageArray[i] !== undefined) rv[i] = messageArray[i];`

你应该把你的阵列调平

const rv = [];
for (var i = 0; i < messageArray.length; ++i) {
   if (messageArray[i] !== undefined)
      rv.push(messageArray[i]);
}

你应该把你的阵列调平

const rv = [];
for (var i = 0; i < messageArray.length; ++i) {
   if (messageArray[i] !== undefined)
      rv.push(messageArray[i]);
}

您可以使用
reduce
汇总数据,并使用
Object.assign()
将新属性合并到对象中

let arr=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
让result=arr.reduce((c,v,i)=>Object.assign(c,v[i]),{});

控制台日志(结果)
您可以使用
reduce
汇总数据,并使用
Object.assign()
将新属性合并到对象中

let arr=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
让result=arr.reduce((c,v,i)=>Object.assign(c,v[i]),{});
控制台日志(结果)
您可以使用
.map()
.reduce()

let数据=[
{0:{title:'test1}},
{1:{message1:{message1}},
{2:{message2:“message2”}
];
让result=data.map((c,i)=>c[i])
.reduce((a,c)=>Object.assign(a,c),{});
控制台日志(结果)
您可以使用
.map()
.reduce()

let数据=[
{0:{title:'test1}},
{1:{message1:{message1}},
{2:{message2:“message2”}
];
让result=data.map((c,i)=>c[i])
.reduce((a,c)=>Object.assign(a,c),{});

控制台日志(结果)您可以迭代每个属性,并使用每个属性扩展当前对象。
var object={};
var输入=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
对于(变量i=0;i*/
您可以迭代每个属性,并使用每个属性扩展当前对象。
var object={};
var输入=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
对于(变量i=0;i*/
您可以将项目按组合到中。然后通过获取内部值,并通过将它们分散到
对象中再次合并。assign()

const data=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
const result=Object.assign(…Object.values(Object.assign({},…data));

控制台日志(结果)您可以按将项目组合到中。然后通过获取内部值,并通过将它们分散到
对象中再次合并。assign()

const data=[{0:{title:“test1”},{1:{message1:“message1”},{2:{message2:“message2”}}];
const result=Object.assign(…Object.values(Object.assign({},…data));

控制台日志(结果)以下代码应给出所需的结果,无对象。分配:

  //Using map() and reduce()
  var arr = [{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}];

  var result = arr.map(function(item,i){
    return item[i];
  })
  .reduce(function(acc,item){
    return {...acc,...item}
  },{})

  console.log(result); // {title: "test1", message1: "message1", message2: "message2"}

希望这有帮助

以下代码应给出所需的结果,无需对象。分配

  //Using map() and reduce()
  var arr = [{0:{title:"test1"}},{1:{message1:"message1"}},{2:{message2:"message2"}}];

  var result = arr.map(function(item,i){
    return item[i];
  })
  .reduce(function(acc,item){
    return {...acc,...item}
  },{})

  console.log(result); // {title: "test1", message1: "message1", message2: "message2"}

希望这有帮助

我发现很难相信你所展示的实际上是你数组的内容。你确定吗?非常非常奇怪。是的,那是我的数组:(我发现很难相信你所展示的实际上是数组的内容。你确定吗?非常非常奇怪。是的,那是我的数组:(