Javascript 检查时未从我的数组中删除的对象
我有2个阵列,其中一个将通过APIJavascript 检查时未从我的数组中删除的对象,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有2个阵列,其中一个将通过APIapirray 第二个数组toggleArray将是我从apiArray 我试图通过selectBtn功能切换数组中的项目和数组中的项目 现在,我可以将项目添加到我的Togglerray中,但是单击同一个按钮不会删除项目,它们会保留在数组中 如果不在数组中,则添加,如果在数组中,则删除,有什么更好的方法进行检查 var vs = $scope; vs.message = "Add and remove objects from array:";
apirray
第二个数组toggleArray
将是我从apiArray
我试图通过selectBtn
功能切换数组中的项目和数组中的项目
现在,我可以将项目添加到我的Togglerray
中,但是单击同一个按钮不会删除项目,它们会保留在数组中
如果不在数组中,则添加,如果在数组中,则删除,有什么更好的方法进行检查
var vs = $scope;
vs.message = "Add and remove objects from array:";
vs.toggleArray = [];
var btnInArray = false;
vs.apiArray = [
{ name: 'AAA' },
{ name: 'BBB' },
{ name: 'CCC' }
];
vs.selectBtn = function(btnObj) {
console.log(btnObj.name);
function checkUpdateToggleTags(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
}
btnInArray = checkUpdateToggleTags(btnObj, vs.toggleArray);
if (btnInArray) {
// check the toggleArray and if obj from listToDelete is there
// remove that obj from toggleArray
for(var i = 0; i < vs.toggleArray.length; i++) {
var obj = vs.toggleArray[i];
if (vs.toggleArray.indexOf(obj.term) !== -1) {
vs.toggleArray.splice(i, 1);
i--;
}
}
} else {
vs.toggleArray.push(btnObj);
}
console.log(btnInArray);
console.log(vs.toggleArray);
};
var vs=$scope;
vs.message=“从数组中添加和删除对象:”;
vs.Toggleray=[];
var btnInArray=false;
vs.apiArray=[
{name:'AAA'},
{name:'BBB'},
{name:'CCC'}
];
vs.selectBtn=功能(btnObj){
console.log(btnObj.name);
函数checkUpdateToggleTags(对象,列表){
var i;
对于(i=0;i
你把事情弄得太复杂了。要在数组中查找对象,您可以直接使用它,因为它也允许搜索非基本类型。在这种情况下,selectBtn
方法将变得如此简单:
vs.selectBtn = function(btnObj) {
var index = vs.toggleArray.indexOf(btnObj);
if (index !== -1) {
vs.toggleArray.splice(index, 1);
}
else {
vs.toggleArray.push(btnObj);
}
};
演示:哈哈,是的,我今天编码太长了。。。谢谢