JSFiddle - React, Tailwind, and code Playground

by Krishna Ananthi

JavaScript

//O(n) space complexity

var filter = function (arr, fn) {
  const res = []
  for (let i in arr) {
    if (fn(arr[i], Number(i))) res.push(arr[i])
  }
  return res
}

var filter1 = function (a, fn) {
  const filteredIndex = 0
  for (let i = 0; i < a.length; i++) {
    if (fn(a[i], i)) {
      if (i != filteredIndex) {
        console.log(a[i], a[filteredIndex])
        let temp = a[i];
        a[filteredIndex] = a[i];
        a[i] = temp;
      }
      filteredIndex++
    }
  }
  return res
}

console.log(
  filter1([0, 10, 20, 30], function greaterThan10(n) {
    return n > 10
  }),
)