Skip to content

Commit 4d2d769

Browse files
committed
Add mapIndexed() for chain.
1 parent 0eb9392 commit 4d2d769

File tree

8 files changed

+28
-0
lines changed

8 files changed

+28
-0
lines changed

math-plugin/src/main/java/com/github/underscore/math/$.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ public <F> Chain<F> map(final Function<? super T, F> func) {
115115
return new Chain<F>($.map(value(), func));
116116
}
117117

118+
public <F> Chain<F> mapIndexed(final BiFunction<Integer, ? super T, F> func) {
119+
return new Chain<F>($.mapIndexed(value(), func));
120+
}
121+
118122
public Chain<T> filter(final Predicate<T> pred) {
119123
return new Chain<T>($.filter(value(), pred));
120124
}

math-plugin/src/test/java/com/github/underscore/math/MathTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,8 @@ public void chain() {
294294
$.chain(new String[] {""}).flatten();
295295
$.chain(new Integer[] {0}).map(new Function<Integer, Integer>() {
296296
public Integer apply(Integer value) { return value; } });
297+
$.chain(new Integer[] {0}).mapIndexed(new BiFunction<Integer, Integer, Integer>() {
298+
public Integer apply(Integer index, Integer value) { return value; } });
297299
$.chain(new String[] {""}).filter(new Predicate<String>() {
298300
public boolean test(String str) { return true; } });
299301
$.chain(new String[] {""}).filterIndexed(new PredicateIndexed<String>() {

src/main/java/com/github/underscore/$.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2137,6 +2137,10 @@ public <F> Chain<F> map(final Function<? super T, F> func) {
21372137
return new Chain<F>($.map(list, func));
21382138
}
21392139

2140+
public <F> Chain<F> mapIndexed(final BiFunction<Integer, ? super T, F> func) {
2141+
return new Chain<F>($.mapIndexed(list, func));
2142+
}
2143+
21402144
public Chain<T> filter(final Predicate<T> pred) {
21412145
return new Chain<T>($.filter(list, pred));
21422146
}

src/main/java/com/github/underscore/lodash/$.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,10 @@ public <F> Chain<F> map(final Function<? super T, F> func) {
161161
return new Chain<F>($.map(value(), func));
162162
}
163163

164+
public <F> Chain<F> mapIndexed(final BiFunction<Integer, ? super T, F> func) {
165+
return new Chain<F>($.mapIndexed(value(), func));
166+
}
167+
164168
public Chain<T> filter(final Predicate<T> pred) {
165169
return new Chain<T>($.filter(value(), pred));
166170
}

src/test/java/com/github/underscore/CollectionsTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,12 @@ public Integer apply(Integer index, Integer item) {
261261
}
262262
});
263263
assertEquals("[3, 6, 9]", resultObject.toString());
264+
List<Integer> resultChain = $.chain(asList(1, 2, 3)).mapIndexed(new BiFunction<Integer, Integer, Integer>() {
265+
public Integer apply(Integer index, Integer item) {
266+
return item * 3;
267+
}
268+
}).value();
269+
assertEquals("[3, 6, 9]", resultChain.toString());
264270
}
265271

266272
/*

src/test/java/com/github/underscore/lodash/LodashTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,8 @@ public void chain() {
603603
$.chain(new String[] {""}).flatten();
604604
$.chain(new Integer[] {0}).map(new Function<Integer, Integer>() {
605605
public Integer apply(Integer value) { return value; } });
606+
$.chain(new Integer[] {0}).mapIndexed(new BiFunction<Integer, Integer, Integer>() {
607+
public Integer apply(Integer index, Integer value) { return value; } });
606608
$.chain(new String[] {""}).filter(new Predicate<String>() {
607609
public boolean test(String str) { return true; } });
608610
$.chain(new String[] {""}).filterIndexed(new PredicateIndexed<String>() {

string-plugin/src/main/java/com/github/underscore/string/$.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ public <F> Chain<F> map(final Function<? super T, F> func) {
152152
return new Chain<F>($.map(value(), func));
153153
}
154154

155+
public <F> Chain<F> mapIndexed(final BiFunction<Integer, ? super T, F> func) {
156+
return new Chain<F>($.mapIndexed(value(), func));
157+
}
158+
155159
public Chain<T> filter(final Predicate<T> pred) {
156160
return new Chain<T>($.filter(value(), pred));
157161
}

string-plugin/src/test/java/com/github/underscore/string/StringTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1992,6 +1992,8 @@ public void chain() {
19921992
$.chain(new String[] {""}).flatten();
19931993
$.chain(new Integer[] {0}).map(new Function<Integer, Integer>() {
19941994
public Integer apply(Integer value) { return value; } });
1995+
$.chain(new Integer[] {0}).mapIndexed(new BiFunction<Integer, Integer, Integer>() {
1996+
public Integer apply(Integer index, Integer value) { return value; } });
19951997
$.chain(new String[] {""}).filter(new Predicate<String>() {
19961998
public boolean test(String str) { return true; } });
19971999
$.chain(new String[] {""}).filterIndexed(new PredicateIndexed<String>() {

0 commit comments

Comments
 (0)