2014-01-17 4 views
0

У меня есть одна переменная, которая хранит diff. amount как 147421
и я хочу, чтобы найти эту сумму необходимо отобразить там month от JSONполучить месяц от json objec, используя сумму

Моего JSON объекта выглядит следующим образом:

var array = [ 
    { 
     amount: 12185, 
     month: "JANUARY", 
     year: "2010" 
    }, 
    { 
     amount: 147421, 
     month: "MAY", 
     year: "2010" 
    }, 
    { 
     amount: 2347, 
     month: "AUGUST", 
     year: "2010" 
    } 
]; 

Как я могу это сделать ?.
Выберите месяц где amount == 12185

+1

Я не мог понять ваш вопрос. Вы хотите отобразить месяц, соответствующий заданной сумме? –

+0

очень непонятный. пожалуйста, объясните – Cybermaxs

+0

Вы пытаетесь реализовать функцию поиска? Скажем, учитывая сумму = "147421", найдите все записи в массиве, имея такую ​​сумму? – akhikhl

ответ

1

Вы можете использовать такую ​​функцию; хотя массив должен быть глобальным. Вот JSFiddle.

function getMonth(amount){ 

    month = ""; 

    for(i = 0;i<array.length.i++){ 
     if(array[i].amount === amount){ 
      month = array[i].month; 
      break; 
     } 
    } 

    return month; 
} 
0

Вот рабочие Fiddle

var result; 
var your_value=12185; 
for(var i=0;i<array.length;i++) 
{ 
    if (your_value == array[i].amount) 
    { 
     result=array[i].month; 
     break; 
    } 
} 
alert(result); 
6

Вы можете фильтровать данные с помощью .filter

var result = array.filter(function(item) { 
    return item.amount == 12185; 
}); 

DEMO

+4

Вау! Я никогда не слышал об этом методе фильтра! 1 up :) –

+1

+1, для array.filter –

0

попробуйте использовать фильтр

function getMonth(a) 
{ 
    var j = array.filter(function(i) 
      { 
       if(i.amount === a) 
       { 
        return i.month; 
       } 
      }); 

    return j[0].month; // here we get first matched result 
} 

var res = getMonth(12185); 

res будет содержать ЯНВАРЬ здесь.

0

Попробуйте это динамический код

<div><input type="button" value="12185" class="className"/> 
<input type="button" value="147421" class="className"/> 
</div> 

for (var i in my_object) { 
    var cur = my_object[i]; 
    $('input[value=' + cur.amount + ']').each(function() { 
     var msg = 'Sales Month: ' + cur.month + ' Number: ' + cur.year; 

     $(this).parent('div').append('<div>' + msg + '</div>'); 
    }); 
} 

скрипку: http://jsfiddle.net/jeyashri/HdgmN/3/

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