js-on-sx: Array.prototype.lastIndexOf
This commit is contained in:
@@ -854,6 +854,19 @@
|
|||||||
((cmp (if (= (len args) 0) nil (nth args 0))))
|
((cmp (if (= (len args) 0) nil (nth args 0))))
|
||||||
(js-list-sort! arr cmp)
|
(js-list-sort! arr cmp)
|
||||||
arr)))
|
arr)))
|
||||||
|
((= name "lastIndexOf")
|
||||||
|
(fn
|
||||||
|
(&rest args)
|
||||||
|
(if
|
||||||
|
(= (len args) 0)
|
||||||
|
-1
|
||||||
|
(js-list-last-index-of
|
||||||
|
arr
|
||||||
|
(nth args 0)
|
||||||
|
(if
|
||||||
|
(< (len args) 2)
|
||||||
|
(- (len arr) 1)
|
||||||
|
(js-num-to-int (nth args 1)))))))
|
||||||
(else js-undefined))))
|
(else js-undefined))))
|
||||||
|
|
||||||
(define pop-last! (fn (lst) nil))
|
(define pop-last! (fn (lst) nil))
|
||||||
@@ -1060,6 +1073,15 @@
|
|||||||
(begin (js-list-set! arr i b) (js-list-set! arr (+ i 1) a)))))
|
(begin (js-list-set! arr i b) (js-list-set! arr (+ i 1) a)))))
|
||||||
(js-list-sort-inner! arr cmp (+ i 1) end))))))
|
(js-list-sort-inner! arr cmp (+ i 1) end))))))
|
||||||
|
|
||||||
|
(define
|
||||||
|
js-list-last-index-of
|
||||||
|
(fn
|
||||||
|
(arr x i)
|
||||||
|
(cond
|
||||||
|
((< i 0) -1)
|
||||||
|
((= (nth arr i) x) i)
|
||||||
|
(else (js-list-last-index-of arr x (- i 1))))))
|
||||||
|
|
||||||
(define
|
(define
|
||||||
js-list-every-loop
|
js-list-every-loop
|
||||||
(fn
|
(fn
|
||||||
@@ -1389,6 +1411,7 @@
|
|||||||
((= key "flat") (js-array-method obj "flat"))
|
((= key "flat") (js-array-method obj "flat"))
|
||||||
((= key "fill") (js-array-method obj "fill"))
|
((= key "fill") (js-array-method obj "fill"))
|
||||||
((= key "sort") (js-array-method obj "sort"))
|
((= key "sort") (js-array-method obj "sort"))
|
||||||
|
((= key "lastIndexOf") (js-array-method obj "lastIndexOf"))
|
||||||
(else js-undefined)))
|
(else js-undefined)))
|
||||||
((= (type-of obj) "string")
|
((= (type-of obj) "string")
|
||||||
(cond
|
(cond
|
||||||
|
|||||||
Reference in New Issue
Block a user