14
A
Respuesta
23
Porque "in" devuelve verdadero si la propiedad/índice especificado está disponible en el objeto. [1, 2] es una matriz y tiene un objeto en el índice 0. Por lo tanto, 0 en [1, 2] y 1 en [1, 2]. Pero! (2 en [1, 2]).
Editar: Para lo que probablemente haya querido, el siguiente comentario de David Dorward es muy útil. Si (algo perversamente) quiere quedarse con 'in', se puede usar un objeto literal
x = {1: true, 2: true};
Esto debería permitir 1 in x && 2 in x && !(0 in x)
etc. Pero, en realidad, sólo tiene que utilizar indexOf.
2
Probablemente estés buscando [1,2].indexOf(0)
. indexOf
podría no funcionar en ie6 embargo.
Aquí es una aplicación que la fija:
if(!Array.indexOf) {
Array.prototype.indexOf = function(obj) {
for(var i=0; i<this.length; i++) {
if (this[i]==obj) {
return i;
}
}
return -1;
}
}
5
Debido a que hay un elemento -ésimo 0
en la matriz.
> 0 in [8,9]
true
> 1 in [8,9]
true
> 8 in [8,9]
false
Cuestiones relacionadas
- 1. ¿Por qué el resultado 2 + 1 y 0 es 0?
- 2. ¿Por qué ~ 0 es -1?
- 3. ¿Por qué 0 && 1 es 1 mientras que 1 && 0 es 0 en ruby?
- 4. En Javascript, ¿por qué [1, 2] == [1, 2] o ({a: 1}) == ({a: 1}) es falso?
- 5. ¿Por qué -1 >> 1 es -1? ¡Y 1 >> 1 es 0!
- 6. En csh, ¿por qué 4 - 3 + 1 == 0?
- 7. `java (0% 2! = 0) == false`
- 8. por qué damos en consulta sql 1 = 0
- 9. ¿por qué usar WHERE 1 = 0 instrucción en SQL?
- 10. ¿Qué significa! 1 y! 0 en Javascript?
- 11. ¿Por qué es (1/2) * x diferente de 0.5 * x?
- 12. ¿Por qué 2 == [2] en JavaScript?
- 13. ¿Qué significan -1, 1 y 0 en este código Javascript?
- 14. ¿Qué son "% 1" y "% 2" en archivos por lotes?
- 15. ¿Por qué SELECCIONAR 2^3 devuelve 1 en SQL Server?
- 16. ¿Por qué es el resultado de 1/3 == 0?
- 17. ¿Por qué falla Convert.ToBoolean ("0")?
- 18. (-1 >> 1) == -1 - ¿Por qué?
- 19. ¿Por qué es (Infinity | 0) === 0?
- 20. ¿Cuándo se activa gen 0, gen 1, gen 2 exactamente?
- 21. ¿Cómo decirle a Mathematica que reemplace 0 por potencia 0 por 1?
- 22. ¿Por qué es el número máximo en java 2^31 - 1 y no 2^31
- 23. ¿Por qué es "0 === -0" verdadero en JavaScript?
- 24. ¿Por qué el recuento es 2 no 1?
- 25. ¿Por qué "alerta (3> 2> 1)" alerta "falsa"
- 26. ¿Por qué int32 tiene valor max 2^31 -1
- 27. C99 - ¿por qué son falsos y verdaderos definidos como 0 y 1 y no como ((bool) 0) y ((bool) 1)?
- 28. ¿Por qué (1 >> 0x80000000) == 1?
- 29. implícita comparación de cadenas, 0 = '', pero 1 = '1'
- 30. ¿Por qué -1 y -2 ambos hash a -2 en CPython?
Además de esto, Félix está probablemente en busca de 'indexOf': https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/indexOf (que requiere JS 1.6, pero que incluye URI una implementación que puede incluir en su código para navegadores que todavía están en 1.5 o anterior) – Quentin