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; 我不小心删了它。问题没有解决
答案 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)
我注意到我试图在循环中运行我的代码。所以当我把它拉出来时它工作正常。