首页 > 代码库 > javascript 数组的数据删除 splice() 的问题
javascript 数组的数据删除 splice() 的问题
最近在做一个项目中遇到一个javascript splice()删除 问题,这个问题,找了好久,才找到原因。同时也借助网站资源,最终解决。我项目中,想实现这个功能,数组中的某一个元素删除。
例如:数组值myarrays 这个是存储在cookie(the_cookieSelectFoodOrderCK) 里面的
根据查询条件 调用 deleteCookieDataFun(foodate,foodetype)传值(1,1)并删除,然后把没有删除数据转化为json字符串,保存在cookie中。
1 //删除订餐截止时间的菜品 2 function deleteCookieDataFun(foodate, foodetype) { 3 //先读cookie 的值 4 var cookieCK = $.cookie(‘the_cookieSelectFoodOrderCK‘); //读取 cookie 5 var myarrays = eval(cookieCK); //转化器 把数组字符串转化成数组对象 6 7 if (myarrays == null) { //检测 cookie 有没有值 8 //默认设置为 一个空间 数组 9 myarrays = new Array();10 $.cookie(‘the_cookieSelectFoodOrderCK‘, ‘[]‘, { path: "/", expires: -1 }); // 删除 cookie11 } else {12 for (var i = 0; i < myarrays.length; i++) {13 //根据订餐类型和日期14 if (myarrays[i].fooDate.toString() == foodate.toString() && myarrays[i].foodType.toString() == foodetype.toString()) {16 myarrays.splice(i); //从数组 删除18 }19 }20 var objString = JSON.stringify(myarrays); //JSON 数据转化成字符串21 $.cookie(‘the_cookieSelectFoodOrderCK‘, ‘[]‘, { path: "/", expires: -1 }); // 存储 cookie22 $.cookie(‘the_cookieSelectFoodOrderCK‘, objString, { path: "/", expires: 1 }); // 添加 cookie23 24 }25 }
这里的结果 objString值就是“[]”数组。没有达到预期结果。后来再网上找一些资料 修改for循环里 myarrays.splice(i)
1 //删除订餐截止时间的菜品 2 function deleteCookieDataFun(foodate, foodetype) { 3 //先读cookie 的值 4 var cookieCK = $.cookie(‘the_cookieSelectFoodOrderCK‘); //读取 cookie 5 var myarrays = eval(cookieCK); //转化器 把数组字符串转化成数组对象 6 7 if (myarrays == null) { //检测 cookie 有没有值 8 //默认设置为 一个空间 数组 9 myarrays = new Array();10 $.cookie(‘the_cookieSelectFoodOrderCK‘, ‘[]‘, { path: "/", expires: -1 }); // 删除 cookie11 } else {12 for (var i = 0; i < myarrays.length; i++) {13 //根据订餐类型和日期14 if (myarrays[i].fooDate.toString() == foodate.toString() && myarrays[i].foodType.toString() == foodetype.toString()) {15 16 myarrays.splice(i, 1); //从数组 删除17 i = i - 1; // 必须对i减去1,否则后面的一个元素会被跳过去18 }19 }20 var objString = JSON.stringify(myarrays); //JSON 数据转化成字符串21 $.cookie(‘the_cookieSelectFoodOrderCK‘, ‘[]‘, { path: "/", expires: -1 }); // 存储 cookie22 $.cookie(‘the_cookieSelectFoodOrderCK‘, objString, { path: "/", expires: 1 }); // 添加 cookie23 24 }25 }
如果没有 i=i-1;就会把怎么数组元素删除完,就会变成空数组。
就这样ok!
javascript 数组的数据删除 splice() 的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。