ultimo ultima descargar cual actualizar actualizaciones actualizacion abril arrays coffeescript

arrays - ultima - Obtención del primer y último elemento de una matriz en CoffeeScript



ultimo windows (6)

El camino más corto está aquí.
array[-1..]
Ver este hilo
https://github.com/jashkenas/coffee-script/issues/156

Si dijera que tengo una matriz y me gustaría iterar a través de la matriz, pero hacer algo diferente al primer y último elemento. ¿Cómo debo hacer eso?

Tomando el siguiente código como ejemplo, ¿cómo puedo alertar al elemento a y e ?

array = [a,b,c,d,e] for element in array console.log(element)

Gracias.


La forma original de acceder al primer y último elemento de una matriz es la misma que en JS realmente: usando el índice 0 y la length - 1 :

console.log array[0], array[array.length - 1]

CoffeeScript te permite escribir algunas expresiones agradables de desestructuración de matrices:

[first, mid..., last] = array console.log first, last

Pero no creo que valga la pena si no vas a usar los elementos medios.

Underscore.js tiene algunos first y last métodos de ayuda que pueden hacer esto más parecido al inglés (no quiero usar la frase "autoexplicativa", ya que creo que cualquier programador entendería la indexación de matrices). Son fáciles de agregar a los objetos de la Array si no quiere usar el subrayado y no le importa que se contamine el espacio de nombres global (esto es lo que hacen otras bibliotecas, como Sugar.js ):

Array::first ?= (n) -> if n? then @[0...(Math.max 0, n)] else @[0] Array::last ?= (n) -> if n? then @[(Math.max @length - n, 0)...] else @[@length - 1] console.log array.first(), array.last()

Actualizar

Estas funciones también le permiten obtener los n primeros o últimos elementos de una matriz. Si no necesita esa funcionalidad, entonces la implementación sería mucho más simple (básicamente la rama else básicamente).

Actualización 2

CoffeeScript > = 1.7 le permite escribir:

[first, ..., last] = array

sin generar un array innecesario con los elementos del medio: D


Puede obtener el element y el index del element actual al iterar a través de la matriz utilizando Coffeescript''s for...in . Consulte el siguiente código, reemplace special_process_for_element y normal_process_for_element con su código.

array = [a, b, c, d] FIRST_INDEX = 0 LAST_INDEX = array.length - 1 for element, index in array switch index when FIRST_INDEX, LAST_INDEX special_process_for_element else normal_process_for_element

sample

Aquí hay un código de trabajo


Puede recuperar los primeros y últimos elementos utilizando la destructuring matrices con un splat:

[first, ..., last] = array

Este uso de splat se admite en CoffeeScript> = 1.7.0.


Puedes usar slice para obtener el último elemento . En javascript, slice puede pasar un número negativo como -1 como argumentos.

Por ejemplo:

array = [1, 2, 3 ] console.log "first: #{array[0]}" console.log "last: #{array[-1..][0]}"

ser compilado en

var array; array = [1, 2, 3]; console.log("first: " + array[0]); console.log("last: " + array.slice(-1)[0]);


Puedes usar solo:

[..., last] = array