Javascript 检查JS中检查条件的对象数组
将对象数组检查到检查条件。条件为 对象数组最初为空 1.若数组为空,则在发生操作时,将对象添加到数组中 2.如果数组有对象,请检查该对象是否已存在。如果找到,请从数组中删除该对象,否则添加到数组中 我尝试了下面的代码Javascript 检查JS中检查条件的对象数组,javascript,arrays,Javascript,Arrays,将对象数组检查到检查条件。条件为 对象数组最初为空 1.若数组为空,则在发生操作时,将对象添加到数组中 2.如果数组有对象,请检查该对象是否已存在。如果找到,请从数组中删除该对象,否则添加到数组中 我尝试了下面的代码 var arr = []; $(document).ready(function() { $(".rating").click(function() { var idx = $(this).closest('td').index(
var arr = [];
$(document).ready(function() {
$(".rating").click(function() {
var idx = $(this).closest('td').index();
var userskill = {
tech : $(this).closest('td').siblings('td.tech').text(),
skill : $('#listTable thead th').eq(idx).text(),
rValue : $(this).val()
}
add(userskill);
});
});
function add(userskill) {
var flag = false;
arr.push(userskill);
for(var i in arr){
if((arr[i].tech==userskill.tech)&&(arr[i].skill==userskill.skill)){
arr.splice(i, 1);
}
}
我想你的问题可能会很有趣。例如,该方法允许对象比较
编辑:
使用u.findWhere进行编码:
function add(userskill) {
if(!_.findWhere(arr, userskill)) {
arr.push(userskill);
}
}
正如我所理解的,如果allready中没有包含相等的对象,则需要将对象“userskill”添加到“arr”中。因此,您可以使用_findWhere方法。如果在列表中找不到相等的对象,则返回false。代码看起来像上面的编辑。上面的代码不起作用。它总是将对象添加到数组中。即使它们相等。。