js里面删除数组元素的问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文字搬运工</title>
</head>
<script type="text/javascript">
window.onload=function(){
var oAaa=document.getElementById('aaa');
var oBbb=document.getElementById('bbb');
var arr="我是谁,是不是谁";
alert(arr[0]);
delete arr[0];
alert(arr[0]);
alert(arr);
}
</script>
<body>
<input type="textarea" id="aaa" />
<input type="button" id="bbb">
</body>
</html>

为什么我数组里面放的是文字,就删除不了?如果全是数字就可以。 要怎么删除文字?

首先数组创建和初始化的格式不对
因为js是弱语言,对格式要求不是很高,所以对于赋值时"new Array"可以省略,直接用
var arrayObj =[[element0[, element1[, ...[, elementN]]]])]
例如var arrayObj =[1,2,3];var arrayObj =["hello","你","好"];
按你目前的格式如果放的是数字,var arr="1,2,3";这时arr里其实放了五个元素,逗号也算进去了,所以如果格式错了,js虽然不会报错,但这是以不是你想要的结果,正确的应该赋值应该是
var arrayObj =[1,2,3]或者var arrayObj =new Array(1,2,3);或者var arrayObj =new Array();
arrayObj[0]=1;arrayObj[1]=2;arrayObj[2]=3;
还有删除数组指定下标的元素,不能直接用delete arr[i]吧

可以参考以下格式进行创建、初始化和删除
数组的创建
var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
删除元素
array.pop();//删除最后一个元素,并返回该元素
array.shift();//删除第一个元素,数组元素位置自动前移,返回被删除的元素
array.splice(start,delCount);//从start的位置开始向后删除delCount个元素
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-17
这个很简单啊,删除一次下标重新计算,你可以在删除一次的时候,for循环删除下一次的时候i-1就可以了。
希望对你能有所帮助。追问

不会就别给我瞎叫!还是复制的。

第2个回答  2019-09-10
因为你这根本不是数组
相似回答