Как определить тип данных результата оператора распространения в javaScript?

Каков тип данных элементов, выводимых с помощью спреда? И можно ли назвать только один элемент после распространения, как с массивами?

Вот пример:

let ages = [1,2,3,1,4];
let chars = ['a','b','c'];


console.log(ages); // shows array> (5) [1, 2, 3, 1, 4]
console.log(...ages); // shows this> 1 2 3 1 4 - ??

console.log(typeof(ages[1]));// number

console.log(typeof(chars));// object

console.log(typeof(chars[1])); //string

//console.log(typeof(...ages)); - NOT WORKING
//console.log(typeof(...ages[1])); - NOT WORKING

Спасибо!

1 ответ

Решение

Каков тип данных элементов, выводимых с помощью спреда?

Каждый член массива будет иметь свой собственный тип.

И можно ли назвать только один элемент после распространения, как с массивами?

Смысл распространения состоит в том, чтобы взять все элементы массива и распространить их.

Если вы хотите получить доступ к одному члену, то вам не следует использовать спред в первую очередь.

console.log(typeof(...ages))

Это не имеет смысла. typeof говорит вам тип чего-то, а не много вещей.

Используйте цикл вместо оператора распространения, если вы хотите что-то сделать с каждым членом массива.

ages.forEach(member => { console.log(typeof member); });
console.log(typeof(...ages[1]));

Также не имеет смысла. ages[1] это число 2. Это не повторяемый объект. Вы не можете распространять это. Если вы хотите тип этого элемента, просто:

console.log(typeof ages[1]);
Другие вопросы по тегам