Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置数组';s长度为0似乎不会清空数组_Javascript_Jquery - Fatal编程技术网

Javascript 设置数组';s长度为0似乎不会清空数组

Javascript 设置数组';s长度为0似乎不会清空数组,javascript,jquery,Javascript,Jquery,我使用全局javascript变量在Ajax请求后存储一些数据。它用于在jqueryui日期选择器上标记日期,并以array[date]=type\u of_date 这是我用来计算数组的函数 当然,这两个日志是用于调试的。问题是,即使执行了这段代码,数组也永远不会被清除。我的语法是否错误,或者我是否误解了全局变量和/或数组?arr\U exceptie[0]指定的索引可能是非数字的 设置length=0仅清除以数字命名的属性(per),因此不清除具有非数字名称的属性。例如,如果设置date\u

我使用全局javascript变量在Ajax请求后存储一些数据。它用于在jqueryui日期选择器上标记日期,并以
array[date]=type\u of_date

这是我用来计算数组的函数


当然,这两个日志是用于调试的。问题是,即使执行了这段代码,数组也永远不会被清除。我的语法是否错误,或者我是否误解了全局变量和/或数组?

arr\U exceptie[0]指定的索引可能是非数字的

设置
length=0
仅清除以数字命名的属性(per),因此不清除具有非数字名称的属性。例如,如果设置
date\u zile\u ore\u modificate['foo']
date\u zile\u ore\u modificate[5]
,则设置
date\u zile\u ore\u modificate.length=0
清除
5
属性,但不清除
foo
属性

但是,将变量设置为全新的数组显然会清除所有属性,因为它完全消除了旧的数组对象。因此,只要使用

window.date_zile_ore_modificate = [];
window.date_zile_nelucratoare  = [];
在所有情况下,消除您最初的条件

此外,如果属性名称完全是非数字的,则可能应该使用普通对象而不是数组(因为数组实际上只适用于数字索引数据):


arr\u exceptie[0]
指定的索引可能不是数字

设置
length=0
仅清除以数字命名的属性(per),因此不清除具有非数字名称的属性。例如,如果设置
date\u zile\u ore\u modificate['foo']
date\u zile\u ore\u modificate[5]
,则设置
date\u zile\u ore\u modificate.length=0
清除
5
属性,但不清除
foo
属性

但是,将变量设置为全新的数组显然会清除所有属性,因为它完全消除了旧的数组对象。因此,只要使用

window.date_zile_ore_modificate = [];
window.date_zile_nelucratoare  = [];
在所有情况下,消除您最初的条件

此外,如果属性名称完全是非数字的,则可能应该使用普通对象而不是数组(因为数组实际上只适用于数字索引数据):


为什么不
date\u zile\u ore\u modificate=[]
?此外,我认为我从未见过
窗口。
在变量脚本中使用了这么多-它们真的是必要的吗?您是否有复杂的作用域问题?
array.length=0
应该可以,但我个人认为@SmokeyHP所说的长度属性不应该是可变的IMO@MattBurland它不会在ajax之前运行,因为ajax调用是同步的?此外,我认为我从未见过
窗口。
在变量脚本中使用了这么多-它们真的是必要的吗?您是否有复杂的作用域问题?
array.length=0
应该可以,但我个人认为@SmokeyHP所说的长度属性不应该是可变的IMO@MattBurland它不会在ajax之前运行,因为ajax调用是同步的。在IE上,每当我尝试
window.date\u zile\u ore\u modificate=[]我得到一个“未定义”错误。编辑,不必担心。未定义的错误来自我试图在禁用开发工具的情况下使用IE上的console.log。好的,这只有一个问题。在IE上,每当我尝试
window.date\u zile\u ore\u modificate=[]我得到一个“未定义”错误。编辑,不必担心。未定义的错误来自我试图在禁用开发人员工具的情况下在IE上使用console.log。
window.date_zile_ore_modificate = {};
window.date_zile_nelucratoare  = {};