尝试在给定2个数组+映射的情况下创建一个对象数组

trying to create an array of objects given 2 arrays + map

本文关键字:数组 映射 情况下 创建 一个对象 2个      更新时间:2023-09-26

这里有以下2个数组:

  > chNameArr
[ 'chanel1',
  'chanel2',
  'chanel3',
  'chanel4',
  'chanel5',
  'chanel6',
  'chanel7' ]

这里:

   > a
[ 'channelName'
  'status',
  'connections',
  'socketIds',
  'lastRun',
  'numberOfRuns',
  'timeout' ]

我试图实现的是数组中每个通道的以下对象,其中channelNamea获得chNameArr的值,但"a"的其余部分获得空字符串

 file=[{"channelName":"chanel1","status":"", "connections":"", "socketIds":"", "lastRun":"", "numberOfRuns":"", "timeout":""},
 .
 .
 .
        {"channelName":"chanel7","status":"", "connections":"", "socketIds":"", "lastRun":"", "numberOfRuns":"", "timeout":""}]

这是我的尝试

   > chNameArr.map(function(d){return {channelName:d}})
[ { channelName: 'chanel1' },
  { channelName: 'chanel2' },
  { channelName: 'chanel3' },
  { channelName: 'chanel4' },
  { channelName: 'chanel5' },
  { channelName: 'chanel6' },
  { channelName: 'chanel7' } ]
chNameArr.map(function(d) {
  result = {};
  result[a[0]] = d;
  for (var i=1; i<a.length; i++) {
    result[a[i]] = "";
  }
  return result;
})

一般来说,没有一个线性函数可以解决这个问题,尽管如果您实际上不需要使用数组a,您可以在原始映射中手动构造{channelName:d, status: "", ...}