JSON分析拼接问题
JSON Parse splice issue
我似乎不明白为什么拼接在这个例子中不能正常工作。
我读过无数拼接的堆栈溢出示例,似乎看不出有什么问题。
这段代码基本上应该从JSON数组中的第一个项目(而且只是)中删除索引14。
var product_variations = JSON.parse('[{"0":"","1":"","2":"","3":"0.0000","4":"","5":"0.00","6":"0.00","7":"1.00","8":"0","9":"false","10":"false","11":[],"12":"","13":"","14":"Red","15":"Small"}]');
product_variations[0].splice(14, 1);
它不起作用,因为splice
是一个在数组上可用的方法,而不是在对象上。
这是一个物体:
{"0":"","1":"","2":"","3":"0.0000","4":"","5":"0.00","6":"0.00","7":"1.00","8":"0","9":"false","10":"false","11":[],"12":"","13":"","14":"Red","15":"Small"}
事实上,你会得到一个错误,比如:
TypeError:undefined不是函数(正在评估"product_variations[0].splice(14,1)")
您可以使用delete
,也可以将其转换为数组:
delete product_variations[0]["14"]
要将其转换为数组,您可以尝试:
function objectToArray(p){
var keys = Object.keys(p);
keys.sort(function(a, b) {
return a - b;
});
var arr = [];
for (var i = 0; i < keys.length; i++) {
arr.push(p[keys[i]]);
}
return arr;
}
var product_variations = JSON.parse('[{"0":"","1":"","2":"","3":"0.0000","4":"","5":"0.00","6":"0.00","7":"1.00","8":"0","9":"false","10":"false","11":[],"12":"","13":"","14":"Red","15":"Small"}]');
var arr = objectToArray(product_variations[0]);
arr.splice(14, 1);
在Javascript中使用"delete"关键字。
delete myArray["lastname"];
如前所述,它不起作用,因为您的对象只是一个列表,而您使用的是一个对象(assoc数组)
.拼接
splice()方法向数组添加项/从数组中删除项,并返回删除的项。
注意:此方法会更改原始的数组。
删除
delete运算符从对象中删除属性。
所以你的代码应该看起来像
delete product_variations[0]["14"]
请记住,14数字是一个字符串,而不是一个数字,正如您在代码中所写的那样,因为这是数组中元素的名称。
尽管如此,我强烈建议您,在看到您正在管理的代码后,将其切换到列表,因为关键字只像普通列表的索引(除了它们以1开头)
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- JSON分析拼接问题
- 问题在于克隆、拼接、删除、追加 jquery 函数
- 从数组及其父数组中删除拼接 - 奇怪的问题
- 阵列在拼接后不会改变它的数据.范围问题
- 拼接删除JavaScript中的随机元素问题
- Javascript拼接方法问题
- 有问题的数组拼接与for循环
- javascript拼接的问题