JavaScript:推送映射到对象属性的数组

时间:2014-04-05 02:15:40

标签: javascript arrays object

我有一个工作函数,它检查表单中的脏数据并跟踪脏元素是哪个div容器。我试图弄清楚如何将{element.id:element.value}对存储/推送到一个对象,其中键是div容器映射到子{element.id:element.value}对的数组:< / p>

...
var dirtyData = {};
(pseudo) for each element in the form
    //isEditableData() returns the div id if we care about the div, else false
    var divContainer = isEditableData(element);
    if (!divContainer)
        continue;
    (pseudo) if the element is dirty
        cacheDirtyData(dirtyData, divContainer, element.id, element.value);
...

function cacheDirtyData(dataObj, divContainer, elementId, elementValue) {
    //I want to do something like...
    dataObj["'" + divContainer + "'"][] = {elementId : elementValue};
}

我这样做是假设dirtyData对象是“通过引用”传递的,我可以添加它。我知道这不是理想的代码(没有ctor等),但是我有一个截止日期,我只是想让这只猪眨眼。

1 个答案:

答案 0 :(得分:0)

对于“缓存”功能:

function cacheDirtyData (dataObj, divContainerId, elementId, elementValue) {
    if (dataObj.hasOwnProperty(divContainerId)) 
         dataObj[divContainer_ID].push({ elementId: value });
    else 
         dataObj[divContainer_ID] = [{ elementId: elementValue }];
}

您可以使用div容器的Id作为传递给函数的字符串(divContainerId)。