Вход

Просмотр полной версии : Передать массив в функцию


deetolog
13.06.2017, 23:51
Приветствую, господа. Не подскажите, как передать массив в функцию, отлаживаю тут под хромом бажный говноскрипт.

b = function(t) {
"use strict";
var n = function(n, o) {
n = t.extend(!0, {}, n);
var i, a, u, c, s, f = "qwertyuioasdfgjklzxcvnmQWERTYUIOASDFGJKLZXCVNM", l = "0123456789", d = o ? 2 : 0;
for (c = 0; c <= e(7) + d; c++) {
i = "",
a = 0;
for (var m = 0, p = 100; p > m; m++) {
for (s = 0; s <= e(3); s++)
u = e(f.length) - 1,
i += f.substring(u, u + 1);
if (!n.hasOwnProperty(i))
break
}
for (s = 0; s <= e(7); s++)
u = e(l.length) - 1,
a += l.substring(u, u + 1);
n[i] = a
}
return r(n)
}
, e = function(t) {
return Math.round(Math.random() * t)
}
, r = function(n) {
var e = t.objectKeys(n);
e.sort(function() {
return .5 - Math.random()
});
for (var r = {}, o = 0, i = e.length; i > o; o++)
r[e[o]] = n[e[o]];
return r
};
return n
}(n),

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

j0hnik
14.06.2017, 00:35
break;
(n);

ksa
14.06.2017, 08:43
как передать массив в функцию

var a=[1,2,3,4,5];
test(a);

function test(Arr) {
alert(Arr);
};

deetolog
14.06.2017, 20:08
Не получается, господа. Посмотрите на скрины. В хроме я без проблем вывожу весь массив (ключ значение), а при отладке в sfiddle.net - нифига не прет, только [object Object]

deetolog
14.06.2017, 20:18
deetolog, сам смотри свои нечитаемые скрины)
Да это форум тупит.




http://ipic.su/img/img7/fs/chrome.1497460873.png
http://ipic.su/img/img7/fs/fiddle.1497460530.png

deetolog
14.06.2017, 21:44
deetolog, что-то ты путаешь панель RESULT на скрипке с панелью Console в отладчике, это не одно и тоже, RESULT это типа окно просмотра браузера, а консоль она везде консоль вывод туда делается так console.log(n), и это у тебя не массив, а объект.
Так как же передать объект в функцию, то, что туплю, это да, согласен.

deetolog
14.06.2017, 22:17
Так в том то и дело, что в консоли хроме все нормально. Разобрался, все значения видно. А когда пытаюсь отладить в jsfiddle, не получается, не передается нормально обьект n.
Я, вот как отлаживаю. Через бреакпоинт в хроме выбираю кусок кода, потом его переношу в jsfiddle, а результат выводу через document. write()

deetolog
16.06.2017, 18:02
Так надо соображать логику кода, а не просто куски выбирать.
Само собой. В хроме разобрался, ставлю бряку в нужном мне месте, все данные ожидаемо приходят в функцию. А при отладке в веб отладчике, не прет. сдается мне, я правильно не передаю объект в функцию, читал че-то, но так и не понял, толком, объекты вроде передаются по ссылке, не просто копируются, как переменные.
Пример. В веб отладчике имею объект.
var n = {
p: 267249,
b: 641991,
f: "khf1hl",
bf: "xvash",
np: 1,
p: 267249,
r: 70991,
render: "%7B%22i%22%3A0%2C%22o%22%3A0%2C%22w%22%3A1%2C%22m% 22%3A0%2C%22a%22%3A0%2C%22mb%22%3A0%7D"
}
Вот. Обращаюсь я к нему, через

document.write(n)

И получаю, вместо вывода всех элементов, вот это [object Object]
А если обратиться вот так

document.write(n["f"])

нужный элемент выводится

Видимо, и в функцию передается [object Object]

рони
16.06.2017, 18:53
И получаю, вместо вывода всех элементов, вот это
document.write(JSON.stringify(n))

deetolog
16.06.2017, 22:56
document.write(JSON.stringify(n))

Ага, спс. Сам уже тоже допер, что можно привести к виду строки через эту функцию, но, это не то.
Все оказалось гораздо запутаннее. А все из за обфускации.
Из за проклятой обфускации не поймешь, где переменная, а где функция.