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