У меня есть нижний код jenscript 'underscore', который проверяет, имеет ли данный USER_ROLES хотя бы один VALID_ROLES. Если это так, возвращает true else false. Он отлично работает.Как проверить массив Javascript, содержащий хотя бы одно значение, которое начинается с определенного текста (например, ROLE_)
Но я хочу реорганизовать его так, что хочу удалить жестко закодированные роли VALID_ROLES и хочу проверить, есть ли хотя бы одна роль, которая начинается с ROLE_. Как это можно сделать?
// Function to check if least one valid role is present
var USER_ROLES = ['ROLE_5'];
function hasAnyRole(USER_ROLES) {
var VALID_ROLES = [ 'ROLE_1', 'ROLE_2', 'ROLE_3', 'ROLE_4' ];
for (var i = 0; i < USER_ROLES.length; i++) {
if (_.contains(VALID_ROLES, USER_ROLES[i])) {
console.log("Found a valid role, returning true.");
return true;
}
}
console.log("No valid role found, returning false.");
return false;
}
Try underscore.any (USER_ROLES, функция (роль) {вернуться role.substring (0, 5) === "ROLE_";}) – netoctone
@netoctone Спасибо, что работает. Являются ли какие-либо() и некоторые() символы подчеркивания одинаковыми? – Jay
yes http://underscorejs.org/#some Кроме того, если вам не нужно поддерживать старые браузеры, вы можете использовать ES 5.1 Array.prototype.some http://www.ecma-international.org/ecma -262/5.1/# sec-15.4.4.17 – netoctone