2016-09-01 4 views
0

wenn es selbst unter Verwendung Ramda.remove() die Funktion ein Array nimmt und gibt einen Array:Bug oder verstehe ich nicht „entwickeln“

const grid = {rows: [1, 2, 3]}; 

R.remove(1, 1, grid.rows) // output: [1,3] 

Wenn I Ramda.remove() als Transformationsfunktion in Ramda.evolve() verwenden, es wird zu einem Objekt {"0": 1, "1": 2, "2": 3} anstelle eines Arrays [1,3]:

const grid = {rows: [1, 2, 3]}; 

R.evolve({ 
    rows: R.remove(1, 1, grid.rows) 
})(grid); // output:{"rows": {"0": 1, "1": 2, "2": 3}} 

verstehe ich evolve richtig oder ist ein Fehler?

Antwort

2

Ich stelle mir vor, was Sie wahrscheinlich wollen, ist

rows: R.remove(1, 1) 

, die Sie aus einer Liste auf eine verkürzte Version dieser Liste eine Funktion geben.

+0

Das war's! Danke, Scott! – zatziky

0

Gerade als ich dieses Thema schrieb, realisierte ich, was falsch ist. Ich musste R.remove in eine Funktion wickeln oder die Argumente binden. Grundsätzlich musste ich den Verweis auf die Funktion übergeben.

rows:() => R.remove(1, 1, grid.rows)