#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
возвращает astring
. Таким образом, вы можете использовать литеральные строки для фильтрации.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})