我想检查我的数组中是否已存在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};
}
答案 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});