Búsqueda de sitios web

javascript - Cómo comprobar si un objeto array contiene una cadena en angularjs


este es mi código, quiero comprobar si el arreglo contiene esta cadena específica "Identicon". y estoy buscando un código de una sola línea como solución, solo quiero comprobar con una condición if.

 $scope.profileImageOptions = [
                      {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

        ];

    if($scope.profileImageOptions.indexOf($rootScope.settings.defaultImage) >-1)
{
    console.log('ok');

    }

Respuesta #1

Puedes usar el método includes en combinación con el método some.

El método some acepta como parámetro una función proporcionada callback que se aplica a cada elemento del array.

profileImageOptions = [
            {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

];
var exist=profileImageOptions.some(function(item){
  return item.Type.includes("Identicon");
});
console.log(exist);

Además, puedes usar una función flecha para simplificar tu código.

profileImageOptions.some(item => item.Type.includes("Identicon"))

Respuesta #2

var arr = [
                      {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

        ];
var result = arr.some(element => element.Type.includes('Identicon'));
console.log(result)

Usemos algunos en Javascript:

$scope.profileImageOptions.some(element => element.Type.includes('Identicon'));