根据值添加和删除JavaScript数组中的条目

时间:2015-12-01 03:06:40

标签: javascript

我有一个Project Management app buildt,前端有JavaScript,后端有PHP / MySQL。

我希望有一个数组,其中包含用户订阅通知的所有任务ID。

当我显示任务记录时,我想根据用户是否已订阅来设置订阅按钮的状态。

我还希望能够从用户订阅数组中添加和删除任务委托。

我认为下面这样的事情将是一个良好的开端......

var userTaskSubscriptions = [{
  task_id: 1,
  subscribed: 'yes'
},
{
  task_id: 2,
  subscribed: 'yes'
},
{
  task_id: 3,
  subscribed: 'yes'
}]

在上面的示例中,我需要一些JavaScript代码,以便我可以检查用户是否有上面的任务ID#2的条目,并且在这种情况下他们会有一个。

我还需要代码来添加和删除条目。

这里有任何帮助吗?

2 个答案:

答案 0 :(得分:2)

您可以循环播放它(按数组大小)并删除找到匹配项的索引。

function deleteTask(taskId) {
    for(var i = 0; i < userTaskSubscriptions.length; i++) {
        if(userTaskSubscriptions[i] == taskId) {
            userTaskSubscriptions.splice(i, 1);
        }
    }
}

答案 1 :(得分:0)

  

请尝试使用此代码:检查task_id是否已经存在   订阅与否,如果是“是”,将从列表中删除并返回   订阅价值'是'。它将使用两个新用户添加到列表中   填充'task_id'并订阅值'是',这是默认值。

 var userTaskSubscriptions = [{
      task_id: 1,
      subscribed: 'yes'
    },
    {
      task_id: 2,
      subscribed: 'yes'
    },
    {
      task_id: 3,
      subscribed: 'yes'
    }];
    var subscribe=function(taskId){
     var _self=this;
      _self.taskId=taskId;
     var subscritpiton;
     $.each(userTaskSubscriptions,function(index,value){
       console.log(userTaskSubscriptions);
          if(taskId == value.task_id){

             userTaskSubscriptions.splice(index, 1);
             subscritpiton=value.subscribed;
             return false;
           }
          else{

             userTaskSubscriptions.push({task_id: _self.taskId,subscribed: 'yes'})
              return false;
          }
        })
    console.log(userTaskSubscriptions);
    return subscritpiton;
    };

subscribe(1); //call subscribe method here