如何将键/值对添加到另一个对象中的JavaScript对象

我要求您提供以下代码:

function vimeoImport() {

let videosToBeImported = [{
    uri: "/videos/442638455",name: "FOMME_1387_VD1",modifed_time: "2020-07-29T09:24:48+00:00"
},{
    uri: "/videos/442056086",name: "FOMME_1387_VD2",modifed_time: "2020-07-29T09:25:27+00:00"
},{
    uri: "/videos/442638455",name: "FOMME_2387_VD1",modifed_time: "2020-07-29T09:24:48+00:00"
}];

let frtVideoUrlValues = {};

for (var index in videosToBeImported) {
    var videos = videosToBeImported[index];
    let videoname = videos.name;

    let splitName = videoname.split('_');
    let targetedVariationGroup = splitName[0].concat('_',splitName[1]);
    let positionvideo = splitName[2];

    let variationGroupParams = {};
    variationGroupParams[positionvideo] = videos.uri;
    if (targetedVariationGroup in frtVideoUrlValues) {
        frtVideoUrlValues[targetedVariationGroup] += variationGroupParams;
    } else {
        frtVideoUrlValues[targetedVariationGroup] = variationGroupParams;
    }
}

}

我尝试在frtVideoUrlValues对象中的targetedVariationGroup对象中添加键/值对(键是变量)。当我尝试时,我在targetedVariationGroup中看到了新的键/值对,但是合并不起作用并且无法访问这两个对象:

如何将键/值对添加到另一个对象中的JavaScript对象

然后我尝试获取这样的对象:

如何将键/值对添加到另一个对象中的JavaScript对象

iCMS 回答:如何将键/值对添加到另一个对象中的JavaScript对象

因为您没有提供任何输出格式,所以我猜测输出应如下所示(如果这不是您想要的,请提供正确的输出格式):

{
  FOMME_1387: [
    { VD1: '/videos/442638455' },{ VD2: '/videos/442056086' }
  ],FOMME_2387: [
    { VD1: '/videos/442638455' }
  ]
}

现在,要实现这一点,您应该编写如下代码:

function vimeoImport() {
    let videosToBeImported = [
        {
            uri: "/videos/442638455",name: "FOMME_1387_VD1",modifed_time: "2020-07-29T09:24:48+00:00"
        },{
            uri: "/videos/442056086",name: "FOMME_1387_VD2",modifed_time: "2020-07-29T09:25:27+00:00"
        },{
            uri: "/videos/442638455",name: "FOMME_2387_VD1",modifed_time: "2020-07-29T09:24:48+00:00"
        }
    ];


    let frtVideoUrlValues = {};

    for (var index in videosToBeImported) {
        var videos = videosToBeImported[index];
        let videoName = videos.name;

        let splitName = videoName.split('_');
        let targetedVariationGroup = splitName[0].concat('_',splitName[1]);
        let positionvideo = splitName[2];

        let variationGroupParams = {};
        variationGroupParams[positionvideo] = videos.uri;
        
        // here are the changes I've made
        if(frtVideoUrlValues[targetedVariationGroup] === undefined) {
            frtVideoUrlValues[targetedVariationGroup] = [];
        }

        frtVideoUrlValues[targetedVariationGroup].push(variationGroupParams);
    }

    console.log(frtVideoUrlValues);
}

vimeoImport();

代码的问题是,您正在使用 + 向另一个对象添加对象,但是 + 仅用于在JavaScript中连接字符串。而不是在做什么,您应该将对象推入数组。要在数组中添加新元素,必须使用 push()方法。

此外,请注意,如果 frtVideoUrlValues 中的键 targetedVariationGroup 未定义,则我已分配了一个空数组如下所示 targetedVariationGroup

frtVideoUrlValues[targetedVariationGroup] = [];

,然后按如下所示在数组中推送 variationGroupParams 对象:

frtVideoUrlValues[targetedVariationGroup].push(variationGroupParams);
本文链接:https://www.f2er.com/1829306.html

大家都在问