w3schools property img attribute javascript arrays fromcharcode

javascript - property - title label html



¿Puedo pasar una matriz en fromCharCode (7)

Podría estar haciendo la pregunta equivocada aquí, así que me disculpo si la respuesta está en otro hilo ... pero he echado un vistazo alrededor.

En un fragmento, ¿por qué no funciona esto?

array = [72,69,76,76,79]; document.write(String.fromCharCode(array));

Estoy recopilando eventos clave en una matriz y quiero poder escribirlos como caracteres cuando se le solicite. Y aunque esto funciona:

document.write(String.fromCharCode(72,69,76,76,79));

Parece que no puedo hacerlo funcionar cuando lo paso como una matriz. También he intentado convertir el array a String () primero, y también array.join (","); para crear una lista separada por comas ... pero nada. ¿Algunas ideas? ¿Hay una mejor manera de convertir los valores que recopilo en mi matriz en caracteres?


Aquí hay 2 maneras en que lo haría:

var arr=[119,119,119,46,87,72,65,75,46,99,111,109]; document.write(eval(''String.fromCharCode(''+arr+'')'')); document.write(''<hr>''); var arr=''119,119,119,46,87,72,65,75,46,99,111,109''; document.write(eval(''String.fromCharCode(''+arr+'')''));


Aquí hay una función:

var unCharCode = function(x) { return this["eval"]("String[''fromCharCode''](" + x + ")"); }; document.write(unCharCode([ 119, 119, 119, 46, 87, 72, 65, 75, 46, 99, 111, 109 ])); document.write("<hr>"); document.write(unCharCode("119,119,119,46,87,72,65,75,46,99,111,109"));


El método está más destinado a ser usado así:

document.write(String.fromCharCode(72,69,76,76,79));

Está pasando una matriz cuando el método espera varios parámetros como una lista.


Es posible que tenga que usar un bucle de la siguiente manera

for(var i = 0; i < array.length; i++) document.write(String.fromCharCode(array[i])); }


Podrías usar el método apply() la función ...

document.write(String.fromCharCode.apply(null, array));

jsFiddle .

ES6 puede utilizar el operador de propagación ...

document.write(String.fromCharCode(...array));

También puede usar el método reduce() la matriz, pero los IEs anteriores no lo admiten. Podría cambiarlo , pero el método apply() está mejor soportado.

document.write(array.reduce(function(str, charIndex) { return str += String.fromCharCode(charIndex); }, ''''));​

jsFiddle .


Sí, puede usar apply() para llamar a una función que una matriz pasó como sus argumentos:

array = [72,69,76,76,79]; document.write(String.fromCharCode.apply(String, array));


Si usa .apply() para llamar a la función fromCharCode() , puede pasarle una matriz que se convertirá en argumentos para la función como esta:

document.write(String.fromCharCode.apply(this, array));

Puedes verlo funcionar aquí: http://jsfiddle.net/jfriend00/pfLLZ/