I had a similar problem, especially since I only wanted to remove a specific item in the array, not all items matching that item.
I created this extension for KO observable arrays, which seems to work. I haven't tried it with arrays of objects yet, but I don't see why that wouldn't work.
When I was first learning KO, I had a very hard time dealing with Arrays, so I hope this will be useful to others:
JavaScript:
ko.observableArray.fn.removeAt = function (index) {
this.valueWillMutate();
this.splice(index, 1);
this.valueHasMutated();
}
HTML:
<div data-bind="foreach: Answers">
<input type="text" data-bind="value: $data"/>
<button
data-bind="click: function(){ $parent.Answers.removeAt($index()) }"
title="Remove"
>X</button>
</div>