Tengo esta matriz:
categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D']
Y esta matriz:
selectedCategories = ['Cat A', 'Cat D']
Quiero producir una nueva matriz a partir de estos dos:
categoriesAvailableToAdd = ['Cat B', 'Cat C']
¿Hay algún truco claro de subrayado / lo-dash que haga esto? No puedo encontrar ninguno. Debe ser una tarea común?
0
Joe
4 sep. 2014 a las 12:32
3 respuestas
La mejor respuesta
Puede utilizar la función _.difference
, de esta manera
console.log(_.difference(categories, selectedCategories));
# [ 'Cat B', 'Cat C' ]
1
thefourtheye
4 sep. 2014 a las 08:34
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
// → [1, 3, 4]
0
Amadan
4 sep. 2014 a las 08:34
Puede filtro con un función de búsqueda de existencia de matriz.
Array.prototype.diff = function(a) {
return this.filter(function(i) {return a.indexOf(i) < 0;});
};
Su ejemplo:
var categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D'];
var selectedCategories = ['Cat A', 'Cat D'];
categories.diff(selectedCategories);
// => ['Cat B', 'Cat C']
0
Margus
4 sep. 2014 a las 08:48
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.