我试图从使用该值的Javascript关联数组中删除一个元素来找到它,但我遇到了麻烦.我尝试过splice和JQuery的grep方法,但对我来说都没有.这就是我现在拥有的.
var array_path = new Array();
function bulk_upload(){
var temp_array = new Object();
for (var i = 1; i<8; i++){
temp_array[i] = $('#path' + i).val();
if(temp_array[i]!='' && temp_array[i]!=null){
array_path['path' + i] = $('#path' + i).val();
}
}
process_txt();
}
function process_txt(){
//alert(array_path.indexOf(full_path)); //returns nothing
var removed_element = array_path.splice(getKey(array_path), 1);
//array_path = $.grep(array_path, function(val) { return val != full_path; });
alert(removed_element);//return nothing, just blank alert box
}
function getKey(data) {
for (var prop in data)
return prop;
}
Run Code Online (Sandbox Code Playgroud)
Bry*_*yle 12
这样做的方法是使用delete运算符.
delete array_path[getKey(array_path)]
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,几乎所有东西都来自Object.prototype.JavaScript是一种开放的动态语言,允许您通过简单的赋值创建/修改对象的属性.这与关联数组(包含键控值的结构)非常相似.
在引擎盖下,数组只是一个从Array.prototype数字键和一个特殊属性调用的对象length.该length属性只返回一个大于最高数字属性的属性.本质上,a Array是具有不同语义的对象.
如果您想要一个关联数组,那么Array它不是您想要的对象.你想直接下降Object.有两种方法可以做到这一点,你可以使用new运算符或空对象文字.两者的语法如下:
var o = new Object();
var o = {};
Run Code Online (Sandbox Code Playgroud)
第二个是首选,因为它更简洁一点.
我曾经写过一篇关于这篇文章的博客文章,看看你是否想要更多信息.
JavaScript本身没有"关联数组"这样的东西.与此概念对应的数据结构只是一个JavaScript对象.
当然,JavaScript数组(基本上就像JavaScript中的所有内容)都是一个Object,但它具有附加功能.所以你可以使用一个数组作为键值映射,但它确实不是正确的结构.
要从Object中删除键,您只需执行以下操作:
var myObj = {};
var myKey = "blah";
myObj[myKey] = 1234; // Adds or updates value for "blah" to 1234.
delete myObj[myKey]; // Removes key-value pair for "blah".
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14296 次 |
| 最近记录: |