una ultimo palabra eliminar ejemplo cortar caracteres caracter cadena buscar javascript jquery arrays string

ultimo - indexof javascript ejemplo



¿Cómo encontrar si una matriz contiene una cadena específica en JavaScript/jQuery? (5)

Esta pregunta ya tiene una respuesta aquí:

¿Alguien me puede decir cómo detectar si "specialword" aparece en una matriz? Ejemplo:

categories: [ "specialword" "word1" "word2" ]


Aqui tienes:

$.inArray(''specialword'', arr)

Esta función devuelve un entero positivo (el índice de matriz del valor dado), o -1 si el valor dado no se encontró en la matriz.

Demostración en vivo: http://jsfiddle.net/simevidas/5Gdfc/

Probablemente quieras usar esto así:

if ( $.inArray(''specialword'', arr) > -1 ) { // the value is in the array }


No me gusta $.inArray(..) , es el tipo de solución fea, jQuery-ish que la mayoría de las personas sanas no tolerarían. Aquí hay un fragmento que agrega un método simple de contains(str) a tu arsenal:

$.fn.contains = function (target) { var result = null; $(this).each(function (index, item) { if (item === target) { result = item; } }); return result ? result : false; }

Del mismo modo, podría envolver $.inArray en una extensión:

$.fn.contains = function (target) { return ($.inArray(target, this) > -1); }


Puedes usar un bucle for :

var found = false; for (var i = 0; i < categories.length && !found; i++) { if (categories[i] === "specialword") { found = true; break; } }


Realmente no necesitas jQuery para esto.

var myarr = ["I", "like", "turtles"]; var arraycontainsturtles = (myarr.indexOf("turtles") > -1);

o

function arrayContains(needle, arrhaystack) { return (arrhaystack.indexOf(needle) > -1); }

Vale la pena señalar que array.indexOf(..) no es compatible con IE <9 , pero la función indexOf(...) jQuery funcionará incluso para las versiones anteriores.


jQuery ofrece $.inArray :

Tenga en cuenta que inArray devuelve el índice del elemento encontrado, por lo que 0 indica que el elemento es el primero en la matriz. -1 indica que el elemento no fue encontrado.

var categoriesPresent = [''word'', ''word'', ''specialword'', ''word'']; var categoriesNotPresent = [''word'', ''word'', ''word'']; var foundPresent = $.inArray(''specialword'', categoriesPresent) > -1; var foundNotPresent = $.inArray(''specialword'', categoriesNotPresent) > -1; console.log(foundPresent, foundNotPresent); // true false

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Editar 3.5 años después

$.inArray es efectivamente un envoltorio para Array.prototype.indexOf en los navegadores que lo admiten (casi todos ellos en la $.inArray ), a la vez que proporciona un apoyo para aquellos que no lo son. Es esencialmente equivalente a agregar un shim al Array.prototype , que es una forma más idiomática / de hacer las cosas. MDN proporciona tal código . Estos días tomaría esta opción, en lugar de usar el contenedor jQuery.

var categoriesPresent = [''word'', ''word'', ''specialword'', ''word'']; var categoriesNotPresent = [''word'', ''word'', ''word'']; var foundPresent = categoriesPresent.indexOf(''specialword'') > -1; var foundNotPresent = categoriesNotPresent.indexOf(''specialword'') > -1; console.log(foundPresent, foundNotPresent); // true false

Edita otros 3 años después.

Dios mío, 6,5 años?

La mejor opción para esto en Javascript moderno es Array.prototype.includes :

var found = categories.includes(''specialword'');

No hay comparaciones y no hay resultados confusos -1 . Hace lo que queremos: devuelve true o false . Para los navegadores más antiguos, se puede rellenar con el código de MDN .

var categoriesPresent = [''word'', ''word'', ''specialword'', ''word'']; var categoriesNotPresent = [''word'', ''word'', ''word'']; var foundPresent = categoriesPresent.includes(''specialword''); var foundNotPresent = categoriesNotPresent.includes(''specialword''); console.log(foundPresent, foundNotPresent); // true false