将新的key:value对“推送”到JavaScript对象上

我知道只能将数组元素.push()放入数组。

我想完成一个对象的等效操作。

我知道点和括号符号,所以这不是那个老问题。我需要循环处理变量。

我已经研究过Object.assign(),但似乎无法使它工作。

下面的函数被重复调用。我需要使用js对象将提供给函数的数据标准化为一个小型数据库。

最后一行是症结所在。 (当然)这将继续覆盖divContent [section] .items [idValue]。

如何将记录对象“推入”由item [idValue]表示的键中?

我想获取{itemsKey:{k1:v1,k2:v2,k3:v3}}。谢谢!

无需维护索引顺序。例如,稍后需要将这些项称为itemsKey [k1]。

  function createItemDb (section,fileName,fileContent) {
    var fileExt = fileName.split('.')[1].toLowerCase();
    fileType = ((fileExt == 'caption') || (fileExt == 'url')) ? fileExt : 'img';
    if (fileType == 'img') {
      var regExp = /\((.*?)\)/g;
      var matches = regExp.exec(fileName);
      fileType = matches[1].toLowerCase();
    }
    var regRemoveParenIncl = /\([^)]*\)/;
    var regRemoveExt = /\.[^\/.]+$/;
    var idValue = fileName.replace(regRemoveParenIncl,'').replace(regRemoveExt,'');
    
    record = {};
    record[fileType] = fileName;
    
    divContent[section].items[idValue] = record;
  }
iCMS 回答:将新的key:value对“推送”到JavaScript对象上

似乎您想要一个既可以同时具有以下功能的结构:

  • 按索引访问(维护顺序)
  • 按键访问(无序访问)

这不存在。您可以做的是创建一个既存储数组又存储对象的自定义对象,然后创建函数,以便您可以使用允许索引(整数)和键(字符串)的覆盖参数来存储和访问。

也许这也可以帮助您:Access non-numeric Object properties by index?

本文链接:https://www.f2er.com/1824639.html

大家都在问