动态对象数组

时间:2017-06-23 08:52:35

标签: javascript angularjs arrays

陷入这种情况,我尝试了不同的解决方案,但没有得到任何解决方法我想要的是:

$scope.list={"A":[],"B":[],"C":[],"D":[]}

这种类型的数组对象但它应该是动态的,例如当我点击按钮时会调用这个函数:

AppendToList(data)
{
       $scope.list.push("E":data)//error
}

我希望这个E是动态的,当我点击下一个对象应该自动创建,如果我下次点击它应该成为{"A":[],"B":[],"C":[],"D":[],"E":[data]}

4 个答案:

答案 0 :(得分:2)

你应该这样试试。

AppendToList(data)
{
       $scope.list["E"]=data;
}

答案 1 :(得分:1)

您的$scope.list实际上是一个对象。要添加媒体资源,您需要使用list.Alist["A"]



var list = {};
list["A"] = [1,2,3];
console.log(JSON.stringify(list));




答案 2 :(得分:0)

试试这个

function nextChar(c) {
    var i = (parseInt(c, 36) + 1 ) % 36;
    return (!i * 10 + i).toString(36);
}

AppendToList(data)
{
$scope.list[nextChar($scope.list[Object.keys($scope.list)[Object.keys($scope.list).length - 1]])]=data;
}

测试它并且它的工作正常你只需添加条件id列表是空的

答案 3 :(得分:0)

尝试这种方式将新对象添加为动态元素

  
   var key = "E";
    var value= { Result: 'Very Success' }
    var list = { "A": [], "B": [], "C": [], "D": [] };
    var splited = JSON.stringify(list).split('}');
    list = JSON.parse(splited[0] + ',"' + key +' ":'+ '[' + JSON.stringify(value)+ '] }')
    console.log(list);