javascript - 如何操作json中的某个元素
大家讲道理
大家讲道理 2017-04-11 09:43:36
0
6
254

有这样一个json:


    [
            {
                groupname:'主要任务',
                index:0,
                tasks:[
                    {
                        id:2,
                        title:'完善通讯录aaweeeeg',
                        urgency:'正常',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['jim','john'],
                        participators:['1','2','3'],
                        publisher:'henry',
                        ddl:'1288323623006',
                        base_score:'5',
                        upvoters:['jim','小华'],
                        completed:true
                    },
                    {
                        id:3,
                        title:'task2',
                        urgency:'正常',
                        remark:'',
                        tasker_main:'12',
                        tasker_other:['小李','小王'],
                        participators:['1','2','3'],
                        publisher:'小华',
                        ddl:'1289355623006',
                        base_score:3,
                        upvoters:[],
                        completed:true
                    },
                    {
                        id:4,
                        title:'紧急会议',
                        urgency:'紧急',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['smith','harry'],
                        participators:['1','2','3'],
                        publisher:'小明',
                        ddl:'1285978923006',
                        base_score:2,
                        upvoters:['henry'],
                        completed:false
                    }
                ]
            },
            {
                groupname:'技术任务',
                index:1,
                tasks:[
                    {
                        id:5,
                        title:'task1',
                        urgency:'火急',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['jim','john'],
                        participators:['1','2','3'],
                        publisher:'mary',
                        ddl:'1285978923006',
                        base_score:'5',
                        upvoters:['jim','小华'],
                        completed:false
                    }
                ]
            }
        ]

我想通过task的id这个属性,找到特定的task对象,然后把它的completed属性改成true。
请问该如何实现这个功能啊?

PS.这个json实际上是当对象来用的,不是字符串。。我是想用JavaScript,在用户单击按钮时,把相应的task标记成已完成。

谢谢

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

reply all(6)
巴扎黑
   var  data =  [
            {
                groupname:'主要任务 
                index:0,
                tasks:[
                    {
                        id:2,
                        title:'完善通讯录aaweeeeg',
                        urgency:'正常',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['jim','john'],
                        participators:['1','2','3'],
                        publisher:'henry',
                        ddl:'1288323623006',
                        base_score:'5',
                        upvoters:['jim','小华'],
                        completed:true
                    },
                    {
                        id:3,
                        title:'task2',
                        urgency:'正常',
                        remark:'',
                        tasker_main:'12',
                        tasker_other:['小李','小王'],
                        participators:['1','2','3'],
                        publisher:'小华',
                        ddl:'1289355623006',
                        base_score:3,
                        upvoters:[],
                        completed:true
                    },
                    {
                        id:4,
                        title:'紧急会议',
                        urgency:'紧急',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['smith','harry'],
                        participators:['1','2','3'],
                        publisher:'小明',
                        ddl:'1285978923006',
                        base_score:2,
                        upvoters:['henry'],
                        completed:false
                    }
                ]
            },
            {
                groupname:'技术任务',
                index:1,
                tasks 
                    {
                        id:5,
                        title:'task1',
                        urgency:'火急',
                        remark:'some word here',
                        tasker_main:'henry',
                        tasker_other:['jim','john'],
                        participators:['1','2','3'],
                        publisher:'mary',
                        ddl:'1285978923006',
                        base_score:'5',
                        upvoters:['jim','小华'],
                        completed:false
                    }
                ]
            }
        ]
   var _id = 4; //把id是4的变成true
   for(var i=0;i
Peter_Zhu
var data = [{
  groupname: '主要任务',
  index: 0,
  tasks: [{
    id: 2,
    title: '完善通讯录aaweeeeg',
    urgency: '正常',
    remark: 'some word here',
    tasker_main: 'henry',
    tasker_other: ['jim', 'john'],
    participators: ['1', '2', '3'],
    publisher: 'henry',
    ddl: '1288323623006',
    base_score: '5',
    upvoters: ['jim', '小华'],
    completed: true
  }, {
    id: 3,
    title: 'task2',
    urgency: '正常',
    remark: '',
    tasker_main: '12',
    tasker_other: ['小李', '小王'],
    participators: ['1', '2', '3'],
    publisher: '小华',
    ddl: '1289355623006',
    base_score: 3,
    upvoters: [],
    completed: true
  }, {
    id: 4,
    title: '紧急会议',
    urgency: '紧急',
    remark: 'some word here',
    tasker_main: 'henry',
    tasker_other: ['smith', 'harry'],
    participators: ['1', '2', '3'],
    publisher: '小明',
    ddl: '1285978923006',
    base_score: 2,
    upvoters: ['henry'],
    completed: false
  }]
}, {
  groupname: '技术任务',
  index: 1,
  tasks: [{
    id: 5,
    title: 'task1',
    urgency: '火急',
    remark: 'some word here',
    tasker_main: 'henry',
    tasker_other: ['jim', 'john'],
    participators: ['1', '2', '3'],
    publisher: 'mary',
    ddl: '1285978923006',
    base_score: '5',
    upvoters: ['jim', '小华'],
    completed: false
  }]
}];

function findById(id){
  return id && map[id];
}
// data to map index is `id`
function dataToMap(data){
  data.forEach(function(group, index){
    group.tasks.forEach(function(task){
      var id = task.id;
      map[id] = task;
    })
  })
}
var map = {};

dataToMap(data);
console.log(findById(3));
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!