Jquery - 检查关联数组的列中是否存在值

时间:2016-03-09 12:36:01

标签: javascript jquery arrays

我想检查我的数组中是否已存在id。如果存在,则应删除旧值,并将新值添加到数组中,否则应将其添加到数组中。

这是我尝试但无效的代码。

sample_array[0] = {'id' : 1, 'letter': 'a'};
sample_array[1] = {'id' : 2, 'letter': 'b'};
sample_array[2] = {'id' : 3, 'letter': 'c'};
sample_array[3] = {'id' : 4, 'letter': 'd'};
sample_array[4] = {'id' : 5, 'letter': 'e'};

input_id = 3;
count_length = sample_array.length;
input_letter = 'L'; 
idx = $.inArray(input_id, sample_array.id); // <- i think this is where it goes wrong.

if(idx ==  -1)
{
   //add to the array
   sample_array[count_length] = {'id' : input_id, 'letter': input_letter};              
}
else
{
   //remove then add to the array
   sample_array.splice(idx, 1);
   sample_array[count_length] = {'id' : input_id, 'letter': input_letter}; 
}

1 个答案:

答案 0 :(得分:1)

您正在搜索原始值而不是对象,所以

从此行开始替换

idx = $.inArray(input_id, sample_array.id);

sample_array.forEach(function(value,index){
   if(value.id==input_id)
   {
     sample_array.splice(index,1);
   }
}).length;
sample_array.push({'id' : input_id, 'letter': input_letter});