如何通过单击按钮清除javascript中数组的内容?

如何通过单击按钮清除javascript中数组的内容?,javascript,arrays,button,reset,Javascript,Arrays,Button,Reset,我有许多按钮,单击这些按钮可以将单词添加到数组中。此数组在url名称中用于下载文件: <button id="button9" onclick="myFunction7();"</button> <script> var a = []; function myFunction7() { a.push("h"); } <button id="button10" onclick="myFunction8();"</button>

我有许多按钮,单击这些按钮可以将单词添加到数组中。此数组在url名称中用于下载文件:

 <button id="button9" onclick="myFunction7();"</button>

 <script>
 var a = []; 
 function myFunction7() { 
 a.push("h"); 
 }

 <button id="button10" onclick="myFunction8();"</button>

 <script>
 var b = []; 
 function myFunction8() { 
 b.push("h"); 
 } 


 var url = [a,b,c,d];

要清除数组,只需将其重新声明为空数组
url=[]

var url=['a','b','c','d'];
console.log(url)//例如添加
函数clearArray(){
返回url=[]
}
函数getArray(){
返回console.log(url)
}
清除数组

Get Array
要清除数组,只需将其重新声明为空数组
url=[]

var url=['a','b','c','d'];
console.log(url)//例如添加
函数clearArray(){
返回url=[]
}
函数getArray(){
返回console.log(url)
}
清除数组

获取数组
关于这个问题,我想讨论两个想法和概念

概念1:

ES6(ECMAScript 2015)中,我们主要使用const关键字声明数组和对象

const url = ['a','b','c','d'];
在这种情况下,如果我们直接尝试使用
url=[]
清除一个数组,我们将得到一个错误,如下所示

script.js:96未捕获类型错误:分配给常量变量。 在HTMLImageElement.flipcard上(script.js:96)

另一种清除数组内容的方法是使用可用于每个数组的pop()方法

while(url.length>0){
 url.pop();
}
概念2:

如果我们直接执行
url=[]
,我们基本上是将一个空数组分配给同一个变量url,而旧数组
['a','b','c','d']
正在内存堆的某个地方漫游,但没有任何指向它的引用变量。由于数组是JavaScript中的对象,所以我们不认为在我们的程序中有对象指向任何对象不是一个好的做法。因为这可能导致程序中出现名为内存泄漏的概念

注意:通过对数组使用pop()方法,我们基本上改变了相同的数组url本身,而无需重新分配,这样我们也可以停止内存泄漏。

下面是关于如何操作的完整js程序:

var url=['a','b','c','d'];
console.log(url)//例如添加
函数clearArray(){
而(url.length>0){
url.pop();
}
返回url;
}
函数getArray(){
返回console.log(url)
}

log(“clearArray函数返回空数组:”,clearArray())关于这个问题,我想讨论两个想法和概念

概念1:

ES6(ECMAScript 2015)中,我们主要使用const关键字声明数组和对象

const url = ['a','b','c','d'];
在这种情况下,如果我们直接尝试使用
url=[]
清除一个数组,我们将得到一个错误,如下所示

script.js:96未捕获类型错误:分配给常量变量。 在HTMLImageElement.flipcard上(script.js:96)

另一种清除数组内容的方法是使用可用于每个数组的pop()方法

while(url.length>0){
 url.pop();
}
概念2:

如果我们直接执行
url=[]
,我们基本上是将一个空数组分配给同一个变量url,而旧数组
['a','b','c','d']
正在内存堆的某个地方漫游,但没有任何指向它的引用变量。由于数组是JavaScript中的对象,所以我们不认为在我们的程序中有对象指向任何对象不是一个好的做法。因为这可能导致程序中出现名为内存泄漏的概念

注意:通过对数组使用pop()方法,我们基本上改变了相同的数组url本身,而无需重新分配,这样我们也可以停止内存泄漏。

下面是关于如何操作的完整js程序:

var url=['a','b','c','d'];
console.log(url)//例如添加
函数clearArray(){
而(url.length>0){
url.pop();
}
返回url;
}
函数getArray(){
返回console.log(url)
}

log(“clearArray函数返回空数组:”,clearArray())
是否要清除
url
数组或数组
a
b
c
d
?我想清除url和要清除
url
数组或数组
a
b
c
,的abc dDo,和
d
?我想清除url和a b c数据getArray函数做什么?@Kar98k-仅用于演示目的。我应该在回答中说明这一点。清除阵列后,单击获取阵列
getArray()
按钮将清除阵列并将其输出到控制台日志,以验证
url
阵列是否已被清除。同样,出于演示目的。@cyberbit谢谢,我已经尝试了这个方法,它成功地删除了数组的内容。但是,我并不是试图清除阵列,而是试图重置它。数组中的a、b、c、d是来自其他按钮的变量。是否可以不删除它们而只是重置它们?@Kar98k的“重置”是指“重新分配”吗?基本上是将
url
设置回
[a,b,c,d]
?getArray函数做什么?@Kar98k-仅供演示。我应该在回答中说明这一点。清除阵列后,单击获取阵列
getArray()
按钮将清除阵列并将其输出到控制台日志,以验证
url
阵列是否已被清除。同样,出于演示目的。@cyberbit谢谢,我已经尝试了这个方法,它成功地删除了数组的内容。然而,我并不是在试图澄清