Фильтр массивов Javascript по типу

#javascript #arrays #filter #types

Вопрос:

я только начинаю изучать javascript и тестирую некоторый код массива, я заканчиваю тем, что делаю это, есть лучший способ сделать фильтр по типу значения. (Извините за любую ошибку, английский не является моим родным языком).

 var list = ["lorem1",  "lorem2", "lorem3" , "lorem4", 1 ,2 ,3]
var number = 1
var type = typeof number
var numbers = list.filter(item => typeof item === type)
var words = list.filter(item => typeof item != type)
// Filter by value types
console.log(numbers)
console.log(words) 

Комментарии:

1. typeof возвращает a string . Таким образом, вы можете использовать литеральные строки для фильтрации.

2. Я думаю, что этот вопрос лучше для codereview.stackexchange.com

3. И вот полное решение: jsfiddle.net/ew3fm8dk/1

Ответ №1:

Вы можете написать функцию и передать тип в качестве аргумента следующим образом:

 var list = ["lorem1",  "lorem2", "lorem3" , "lorem4", 1 ,2 ,3]

function filterByType(arr, type){
  return arr.filter(item=> typeof item === type)
}

const words = filterByType(list, 'string')
const numbers = filterByType(list, 'number')

console.log({words, numbers})