Hace un tiempo me topé con este fragmento de código en los documentos web de MDN :
function Date(n) { return ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][n%7 || 0]; } Lo encontré interesante ya que nunca antes había visto una sintaxis de matriz utilizada de esa manera. Claro, he creado matrices sobre la marcha y he hecho algo como [1, 2, 3][0] , pero en este caso con [n%7 || 0] , utiliza n para el índice que queremos y, lo que es más importante, codifica 7 para la longitud de la matriz con el fin de "envolver" la n en la matriz.
Hoy me encontré con esta pregunta y al codificar mi respuesta:
let sampletext="Home/Student/Hello.txt" let textarr = sampletext.split('/'); let idarray = textarr.map((x, i) => { if(i === 0) return { id: x, parent: '' }; return { id: x, parent: textarr[i - 1] }; }); console.log(idarray); Me di cuenta de que tenía que hacer el .split por separado, ya que de lo contrario no podría referirme significativamente al arr[i - 1] ya que si tuviera sampletext.split('/').map(...) , no 't tiene una referencia a la matriz que sampletext.split('/') .
Estos dos ejemplos tienen algo en común, que me gustaría llamar "referencia izquierda faltante" y lo que quiero decir con eso es algo como esto:
Ejemplo 1 con "referencia izquierda"
function Date(n) { return ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][n%left.length || 0]; }Ejemplo 2 con "referencia izquierda"
// "mapLeft" magically pulls whatever .split('/') spits out by using "left" keyword internally and passes it to the function passed to the mapLeft let idarray = sampletext.split('/').mapLeft((x, i, left) => { if(i === 0) return { id: x, parent: '' }; return { id: x, parent: left[i - 1] }; }); Entonces, lo que estoy buscando es una forma de obtener básicamente una referencia al lado izquierdo de una expresión, desde el lado derecho de una expresión, la idea es que left sería una palabra reservada similar a this .
No creo que exista nada como esto en JavaScript al menos, pero me pregunto si algún idioma admite dicha sintaxis y si es posible implementar una sintaxis como esta en un idioma.