我想从关联数组中删除一个元素。数组如下:
array[propertyname] = property;
此数组中填充了一些数据(少于10个条目),并显示在属性窗口中。
在某些页面上,您可以单击条目旁边的删除按钮并删除相应的条目。为了实现这个功能,我们称之为:
$d(document).on('click', '.property_del[type="button"]', function(event) {
for (property in selectedGroup.properties) {
if(property == $d(this).attr('id').replace("_buttondel", "")){
continue;
}else{
temp_array[property] = selectedGroup.properties[property];
}
selectedGroup.properties = temp_array;
});
这项工作到目前为止,所选条目在按钮点击事件后被删除,但它很慢。删除的第二种方法与第一种方法一样慢:
delete selectedGroup.properties[$d(this).attr('id').replace("_buttondel", "")];
我该怎样做才能让它更快?
THX !!
答案 0 :(得分:4)
也许for循环中的jquery选择器正在减慢速度。这会加快速度:
$d(document).on('click', '.property_del[type="button"]', function(event) {
var value = $d(this).attr('id').replace("_buttondel", "");
for (property in selectedGroup.properties) {
if(property == value){
continue;
}else{
temp_array[property] = selectedGroup.properties[property];
}
selectedGroup.properties = temp_array;
});
答案 1 :(得分:1)
你将在jquery“构造函数”上浪费大量时间,就像在$(this)
循环中for
一样。根据{{1}}中的属性数量,这将是相当长的时间。
首先,我要用
selectedGroup.properties
在for循环之外。