将另外两个键和值添加到具有相同值的对象数组中



我正在使用node.js向vimeo api提出Axios请求。

我有点像JSON,但我想了解。我用名称过滤器打电话给Vimeo,所以我得到了一个"对象数组"(我希望该名称是正确的),如下所示:

 [{ name: 'A Personalized Goal for Anthony' },
 { name: 'Flow access & overview' },
 { name: 'Welcome - 2018 Conference' },
 { name: 'Dropout Video' } ] }

这只是视频的名称,但是我需要添加两个键值对,其值与下拉菜单的名称值相同,因此如下所示:

[{ name: 'A Personalized Goal for Anthony',
 "text": "A Personalized Goal for Anthony",
 "value": "A Personalized Goal for Anthony"  },
 { name: 'Flow access & overview',
   "text": "Flow access & overview"
   "value": "Flow access & overview" },
 { name: 'Welcome - 2018 Conference',
   "text": "Welcome - 2018 Conference"
   "value": "Welcome - 2018 Conference" },
 { name: 'Dropout Video',
   "text": "Welcome - 2018 Conference"
   "value": "Welcome - 2018 Conference" }] 

我的应用需要键"文本"one_answers"值",以便处理用户的响应。

我不确定为什么{name:'辍学视频'},并不像这样的格式{" name":" dropout video"},

node.js中是否有一种方法可以使用映射添加或重复一个数组或使用相同的名称值推动,同时也对此数组进行for for thit arnay,但带有两个附加的键值对,具有与相同的值关键名称?

这也是一个动态对象,因此当请求再次调用时,它可能只有4个视频名称返回。

我的目标是在我想提出请求的Vimeo专辑中添加许多视频用户考虑的考虑,以便我能够查看他们选择了哪个名称或标题,因此需要更多信息。

在这里非常感谢您的任何帮助。我希望Vimeo有一个文本和价值字段,所以我可以过滤,但是那不会很有趣:)

您可以通过结果映射,例如,在获得结果之后:

    const movies =  [{ name: 'A Personalized Goal for Anthony' },
    { name: 'Flow access & overview' },
    { name: 'Welcome - 2018 Conference' },
    { name: 'Dropout Video' }];

您可以将其映射以将其他两个属性添加到每个对象中,优势是您没有突变结果。

    const mappedMovies = movies.map(movie => {
      return {
        name: movie.name,
        text: movie.name,
        value: movie.name
      }
    );

以这种方式,您将拥有所需格式的对象列表,现在,如果您需要以JSON格式使用它,则可以做:

    const JSONString = JSON.stringify(mappedMovies);

对象是引用,因此您只需循环穿过对象并添加键即可。

const videos = [
  { name: 'A Personalized Goal for Anthony' },
  { name: 'Flow access & overview' },
  { name: 'Welcome - 2018 Conference' },
  { name: 'Dropout Video' }
]
for (video of videos) {
    video.text = video.name
    video.value = video.name 
}
console.log(videos)

欢迎来到So Kevin,

看起来您几乎已经自己提供了答案...

要获取生成的数组,您可以通过对象映射并根据需要添加键:

const slackVideos = videos.map(function (item, label) {
    return {
        ...item, //this ensures all original keys are available, using the ES6 destructuring
        text: item.name,
        value: item.value,
    }
});

假设videos是从Vimeo接收的对象,slackVideos现在将包含您的Aditional text&value键;两者都包含来自原始Vimeo对象的name键。

最新更新