source: node_modules/minim/lib/ObjectSlice.js@ d24f17c

main
Last change on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 899 bytes
RevLine 
[d24f17c]1const negate = require('lodash/negate');
2const ArraySlice = require('./ArraySlice');
3
4/**
5 */
6class ObjectSlice extends ArraySlice {
7 map(callback, thisArg) {
8 return this.elements.map(member => callback.bind(thisArg)(member.value, member.key, member));
9 }
10
11 filter(callback, thisArg) {
12 return new ObjectSlice(this.elements.filter(member => callback.bind(thisArg)(member.value, member.key, member)));
13 }
14
15 reject(callback, thisArg) {
16 return this.filter(negate(callback.bind(thisArg)));
17 }
18
19 forEach(callback, thisArg) {
20 return this.elements.forEach((member, index) => { callback.bind(thisArg)(member.value, member.key, member, index); });
21 }
22
23 /**
24 * @returns {array}
25 */
26 keys() {
27 return this.map((value, key) => key.toValue());
28 }
29
30 /**
31 * @returns {array}
32 */
33 values() {
34 return this.map(value => value.toValue());
35 }
36}
37
38module.exports = ObjectSlice;
Note: See TracBrowser for help on using the repository browser.