js-on-sx: Array.prototype.lastIndexOf

This commit is contained in:
2026-04-23 23:24:02 +00:00
parent 9f9e4e1e9d
commit 0a3425ba18

View File

@@ -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