Example 6-19. Finite iterations
function* match(objects, propname, value) {
var i;
var obj;
for (i = 0; i < objects.length; i++) {
obj = objects[i];
if (obj[propname] === value) yield obj;
};
}
var animals = [
{ type: 'bird', legs: 2 },
{ type: 'cat', legs: 4 },
{ type: 'dog', legs: 4 },
{ type: 'spider', legs: 8 }
];
var iterator = match(animals, 'legs', 4);
console.log(iterator.next().value.type); // value is an animal
console.log(iterator.next().value.type); // value is an animal
console.log(iterator.next().value); // value is undefined
// Console output:
// cat
// dog
// undefined