Loading...
KatyaMarincheva avatar KatyaMarincheva 572 Точки
Best Answer

От това, което четох - не може директно да получиш отговор array, всяка опция за откриване на array ще ти даде като отговор само true или false, и ти трябва да си направиш един if, който при true да ти дава array, да го печата, да го assign-ва на type, както си избереш - нещо такова:

var type = typeof (argument);

if (Array.isArray(argument)) {
    type = "array";
}

като в този if може да ползваш най-различни проверки, например:

if (argument instanceof Array)
if (Object.prototype.toString.call(argument) === '[object Array]')
if (argument && (argument.constructor==Array))

 

 

3
06/02/2016 11:00:40
idmitrov avatar idmitrov 55 Точки

Привет,

Според мен Object не е много грешен отговор, защото това е нормалното поведение в JS.
Ако все пак искаш да провериш дали дадена променлива е масив, има много варианти, ето ти малко четиво

1
06/02/2016 10:47:13
enevlogiev avatar enevlogiev 1168 Точки

Правиш някакви странни неща, затова ти дава грешка. Предполагам, че ти е хвърлило великата грешка

Expecting a function, but got function instead
 
Пробвай с myVar instanceof Array.
3
JohnJohnny avatar JohnJohnny 6 Точки

Мерси много че ми отговорихте ,но го разбрах  по трудния начин :)

var theType = toString.call(arguments[i]) //this is because js
    .substr(toString.call(arguments[i]).indexOf(' ')+1)
    .replace(']','').toLocaleLowerCase();

това е

1
06/02/2016 11:37:34
a1mbiser avatar a1mbiser 63 Точки

http://pastebin.com/NGUdVeG1

Колега ето примерно решение на задачката дано ти е полезно.(не гарантирам на 100% че е вярно :) )

1
06/02/2016 12:21:26
KatyaMarincheva avatar KatyaMarincheva 572 Точки

По-кратко е, но не работи с null и undefined.

TypeError: Cannot read property 'constructor' of null

и е поправимо ако му добавиш една проверка:

function printArgsInfo() {

    for (var i = 0; i < arguments.length; i++) {

        var type = arguments[i] ? arguments[i].constructor.name.toLocaleLowerCase() : typeof arguments[i];
        console.log(arguments[i] + ' (' + type + ')');
    }
}
2
06/02/2016 13:02:12
a1mbiser avatar a1mbiser 63 Точки

Така е като човек не пробва със всички тестове(на работа съм и пробвах решението набързо).Благодаря за корекцията :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.