2015-06-10 4 views
0

У меня была проблема, когда я загружаю функцию с массивом с объектами внутри.функция с параметрами как массив с объектами javascript

var func = function(){ 
    var feeded = //here is my problem 
    /*some code/* 
} 

var itemArray = [{"stat":49,"amount":156},{"stat":40,"amount":108},{"stat":5,"amount":207},{"stat":7,"amount":311}] //just an exsample 
var answare = func(itemArray) 

Как я мед переменная Feeded же, как itemArray, так что я могу использовать методы массивов на Feeded?

Я попытался использованияКонтактная:

var feeded = [].slice.call(arguments) 

и

var feeded = arguments 

я не мог использовать для цикла, а затем получить стат и количество внутри. (мне не нужно закрывать строки, поскольку они не нужны в скрипте Google

+0

Вы overthinking его. 'var func = function (feeded) {...}' должен работать для вас, учитывая, что вы вызываете его с помощью функции func (itemArray) '. Альтернативно, 'var func = function() {var feeded = arguments [0]; ...} ', если вы действительно, * действительно * ненавидите этот параметр там. Было бы иначе, если бы вы вызвали 'func.apply (this, itemArray)', но нет причин. – Amadan

+0

Вы должны прочитать руководство по функциям, например https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions или http://eloquentjavascript.net/03_functions.html –

+0

, если вы скажете 'var func = funtion (feeded), feeded - это только первый объект, так как все, что подается в funtion, становится массивом, вы называете первый объект внутри массива –

ответ

0

На самом деле вы можете перебирать те с петлей для

var func = function(){ 
    var feeded = arguments; 
    console.log(arguments); 
    for(var i = 0; i < feeded[0].length; i++) 
     console.log(feeded[0][i].stat); 
} 

var itemArray = [{"stat":49,"amount":156},{"stat":40,"amount":108},{"stat":5,"amount":207},{"stat":7,"amount":311}] //just an exsample 
var answare = func(itemArray) 

Вы можете просто разучились доступ arguments[0] вместо arguments

+0

что такое 'arguments' ?? – ozil

+0

arguments - это массив аргументов, данный, но не определенный в параметрах функции, например. 'func ('a', 'b');' будет иметь 'arguments [0] == 'a'' и' arguments [1] ==' b'' – Iwan1993

+0

'arguments' - ключевой мир?/ – ozil

1

Вам нужно заставить функцию принять параметр. Просто введите подходящее имя для параметра в круглых скобках вашего объявления функции следующим образом:

var func = function(items){ 
    [...] 
} 

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

var func = function(items){ 
    var feeded = items; 
} 

вы можете прочитать больше о функциях в JavaScript here

0

Try:

var func = function(){ 
    var feeded = arguments; //is itemArray Array 
    console.log(feeded) 
    /*some code*/ 
} 

var itemArray = [{"stat":49,"amount":156},{"stat":40,"amount":108},{"stat":5,"amount":207},{"stat":7,"amount":311}] //just an exsample 
var answare = func.apply(null, itemArray) 
+0

что такое 'arguments' ?? – ozil

+0

'arguments' =' itemArray [] ' –

Смежные вопросы