Estoy practicando/estudiando JavaScript y Python. Me pregunto si Javascript tiene la equivalencia a este tipo de codificación.
Básicamente, estoy tratando de obtener una matriz de cada entero individual de la cadena con fines de práctica. Soy más competente en Python que en JavaScript
Pitón:
string = '1234-5' forbidden = '-' print([int(i) for i in str(string) if i not in forbidden])¿Javascript tiene algo similar para que yo haga arriba?
Actualización: las comprensiones de matriz se eliminaron del estándar. Citando a MDN :
La sintaxis de comprensión de matriz no es estándar y se eliminó a partir de Firefox 58. Para usos futuros, considere usar Array.prototype.map, Array.prototype.filter, funciones de flecha y sintaxis de distribución.
Vea esta respuesta para ver un ejemplo con Array.prototype.map :
let emails = people.map(({ email }) => email);
Respuesta original:
Sí, JavaScript admitirá la comprensión de arreglos en la próxima versión 7 de EcmaScript.
Aquí hay un ejemplo .
var str = "1234-5"; var ignore = "-"; console.log([for (i of str) if (!ignore.includes(i)) i]);Dado el código Python de la pregunta
print([int(i) for i in str(string) if i not in forbidden])esta es la traducción más directa a JavaScript (ES2015):
const string = '1234-5'; const forbidden = '-'; console.log([...string].filter(c => !forbidden.includes(c)).map(c => parseInt(c))); // result: [ 1, 2, 3, 4, 5 ]Aquí hay una comparación de los elementos de código de Python y JavaScript que se utilizan: (Python -> Javascript):
Array.filterArray.mapAl leer el código, asumo que prohibido puede tener más de 1 carácter. También asumo que la salida debería ser "12345"
var string = "12=34-5"; var forbidden = "=-"; console.log(string.split("").filter(function(str){ return forbidden.indexOf(str) < 0; }).join(""))Si la salida es "1" "2" "3" "4" "5" en líneas separadas
var string = "12=34-5"; var forbidden = "=-"; string.split("").forEach(function(str){ if (forbidden.indexOf(str) < 0) { console.log(str); } });