Набор, хранящий результат вычитания одного набора из другого.
Уменьшаемое хранится в свойстве minuend
, его можно задать методом setMinuend
. Вычитаемое хранится в свойстве subtrahend
, которое можно менять методом setSubtrahend
. Оба операнда можно изменить разом используя метод setOperands
. С версии 1.3 для обоих операндов используется resolveDataset.
Когда меняется уменьшаемое, выбрасывается событие minuendChanged
, а при изменении вычитаемого – subtrahendChanged
. Если один из аперандов не задан, то набор будет пустым.
var Dataset = basis.require('basis.data').Dataset;
var Subtract = basis.require('basis.data.dataset').Subtract;
var data = basis.require('basis.data').wrap([1, 2, 3, 4, 5, 6, 7], true);
var foo = new Dataset({
items: data.slice(0, 5) // 1, 2, 3, 4, 5
});
var bar = new Dataset({
items: data.slice(2, 6) // 3, 4, 5, 6
});
var subtract = new Subtract({
minuend: foo,
subtrahend: bar
});
console.log(subtract.getValues('data.value'));
// > [1, 2]
foo.add(data[6]);
console.log(subtract.getValues('data.value'));
// > [1, 2, 7]
bar.remove(data[2]);
console.log(subtract.getValues('data.value'));
// > [1, 2, 3, 7]