是什么使用之间的差值的delete算子阵列元件上,而不是使用该Array.splice方法?
例如:
myArray = ['a', 'b', 'c', 'd'];
delete myArray[1];
// or
myArray.splice (1, 1);
Run Code Online (Sandbox Code Playgroud)
如果我能用对象删除数组元素,为什么甚至有拼接方法?
我想/AA/在AA-AA-AA主题字符串中找到模式.我需要获得匹配的字符串和匹配的位置(索引).
我看过了RegExp.prototype.exec().它只返回第一个匹配:
/AA/g.exec('AA-AA-AA')
Run Code Online (Sandbox Code Playgroud) var cache = [];
cache[0] = "0";
cache[1] = "1";
cache[2] = "2";
cache[3] = "3";
cache[4] = "4";
cache["r"] = "r";
console.log(cache.length);
for(key in cache){
if(isNaN(key))continue;
else cache.splice(key,1); // cache.splice(key) is working fine, ***
}
console.log(cache);
Run Code Online (Sandbox Code Playgroud)
问题:在线***为什么拼接(键)工作正常(删除带有数字索引的所有元素)和拼接(键,1)不能正常工作(不删除具有数字索引的元素).即便我尝试过
splice(key,1) // Not working as splice(key)
splice(key--,1) // Even not working as splice(key)
splice(key,0) // not deleting any thing
Run Code Online (Sandbox Code Playgroud)
您可以在Firebug控制台中复制和粘贴代码以进行测试.