我正在处理一个对象,我想从中删除特定地址上的值。 我需要元素的位置并希望将其从对象中删除
这是代码:
var matches = {
"users-email": "email",
"users-activated": "activated",
"users-created_at": "created_at",
"users-registration_page": "registration_page",
"profiles-firstname": "firstname"
} ;
var option = 'firstname';
var if_in = $.inArray(option, matches );
//console.log(matches)
if( if_in !== -1 )
{
matches.splice(if_in, 1);
}
$.each(matches , function(i,v){
$('.test').append(v+'<br>');
});
在我的对象中 $.inArray()
不起作用,它返回 -1 。
有人可以帮我解决这个问题吗?
最佳答案
更正了按值删除的答案。您可以使用 $.each 迭代对象并删除匹配的值。
$.each (matches, function(key, value) {
if (value == option) {
delete matches[key];
return false; //deleted matching value
}
});
按值删除多个键,
var keysToDelete = [];
for (var key in matches) {
if (matches[key] == option) {
keysToDelete.push(key);
}
};
for (var i = 0; i < keysToDelete.length; i++ ) {
if (matches.hasOwnProperty(keysToDelete[i])) {
delete matches[keysToDelete[i]];
}
}
关于javascript - $.inArray 不适用于对象 JavaScript 对象有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913846/