2015-05-29 3 views
1

я пытаюсь сделать это:функция содержит в angularJs

for(i=0;i<$scope.users.length;i++){ 
    var name= $scope.users[i].name; 

    if(!(name.contains('ext'))){ 
     $scope.users.splice(i,1); 
    } 
} 

Но у меня есть ошибка о функции содержит. Я тоже попробовал матч, и у меня была такая же проблема. Кто-нибудь может мне помочь?

ответ

1

Строки не имеют метода .contains().

Использование:

if (name.indexOf('ext') === -1) { 
    ... 
} 

ES6 имеет метод String.prototype.includes(), но это в настоящее время поддерживается только в Chrome и FireFox. На данный момент вам будет лучше использовать вышеупомянутый подход.

Ваша петля там тоже не будет работать, потому что вы удаляете элементы из массива во время итерации через него. Вам было бы лучше:

$scope.users = $scope.users.filter(function (user) { 
    return user.name.indexOf('ext') !== -1; 
}); 
0

Как насчет использования includes?

Или вы можете попробовать name.indexOf('ext') === -1

Смежные вопросы