Как вывести строку из массива

привет! возник вопрос! например: есть массив var arr = [1,‘cat’,35,‘dog’,888,‘hotdog’,]; нужно через функцию вывести только строки .

typeof поможет вам

Создаешь исходный массив. Создаешь пустой массив куда будешь записывать результат. Создаешь функцию, в которой есть цикл for(перебор элементов массива). В этом цикле проверяешь каждый элемент с помощью if(typeof). Если строка, запихаешь элемент в новый массив результата, если нет возвращаешься в начало цикла. и потом вызываешь функцию, которая и выводит итоговый массив, только из строк. Вот тебе алгоритм. Может можно и проще, если что подскажите как правильно.

1 лайк

а можно простой пример ?

var arr = [1,'cat',35,'dog',888,'hotdog']; 
var newArr = [];
function stringArr(array){
    for(var i=0; i< array.length; i++){
        if(typeof array[i] != "string"){
            continue;
        }else {
            newArr.push(array[i]); 
        }
        }
alert(newArr);
}
stringArr(arr);

о,спасибо большое! буду тренироваться.

фильтр - аргументом передается функция, возвращающая єлемент , если он подходит твоим условиям.
arr.filter(function(el){return typeof(el)===“string”}).
функцию можно обозвать какнибудь - и использовать arr.filter(funcСheckString).

1 лайк

Как раз тот случай, когда alert скроет ошибку. В той строке, что будет заалерчена строки никак не будут отличаться от чисел. Лучше использовать console.log.

фильтр - аргументом передается функция, возвращающая єлемент , если он подходит твоим условиям.
arr.filter(function(el){return typeof(el)===“string”}).
функцию можно обозвать какнибудь - и использовать arr.filter(funcСheckString).

Да, естественно так короче, и для этой задачи верней.

И не забывать, что filter появился в 5-ой версии js

1 лайк