无法替换数组内的项目

时间:2015-05-20 10:08:16

标签: javascript angularjs

Wrighting Angular应用程序。

在此代码中,我试图替换数组中特定数字的项目。

for (i=0;i<this.marked.length;i++) {
    this.index = this.marked[i].ind;
    this.newSongs[this.index] = this.marked[i].name;
}

这就是this.marked的样子:

{
    ind: index,
    name: songName
}

那么为什么结果呢?

['name1', 2: 'name3']

而不是:

['name1', 'name2', 'name3'] 

对不起,大家好,实际上是这个。标记为[i] .ind; 我不小心删了它。问题没有解决

3 个答案:

答案 0 :(得分:0)

我认为你只需要替换

this.index = this.marked[i]

通过

this.index = this.marked[i].ind

答案 1 :(得分:0)

Khalid和Joel给了你正确的提示。你需要使用:

this.index = this.marked[i].ind

这里有一个角色小提琴。希望这会有所帮助

https://jsfiddle.net/trollr/3adngkmx/

function SongCtrl($scope) {
  $scope.songs = [
        {
            ind: 1,
            name: "Tessie"
        },
        {
            ind: 2,
            name: "Kiss Me I’m Shitfaced"
        },
        {
            ind: 3,
            name: "The State of Massachusets"
        }
    ];

    $scope.replace = function(index, value) {
        for (i=0;i<$scope.songs.length;i++) {
            var currentIndex = $scope.songs[i].ind;
            if(currentIndex == index) {
                 $scope.songs[i].name = value;
            }
        }
    }
}

答案 2 :(得分:0)

我注意到我试图在循环中运行我的代码。所以当我把它拉出来时它工作正常。