javascript - $.inArray 不适用于对象 JavaScript 对象有其他选择吗?

标签 javascript jquery arrays object

我正在处理一个对象,我想从中删除特定地址上的值。 我需要元素的位置并希望将其从对象中删除

这是代码:

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 。

有人可以帮我解决这个问题吗?

jsfiddle link

最佳答案

更正了按值删除的答案。您可以使用 $.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/

相关文章:

javascript - 当我在解构原始类型后解构 Partial 类型时,Typescript 不会给出错误

javascript - 获取时间从服务器加载图像到浏览器

c - 二维字符数组

java - 处理并行数组

javascript - MEJS 在 setSrc() 之后忽略预加载标签

javascript - .map() 和 .each() 的不同输出

javascript - E4X 中的 getElementsByTagName

javascript - 如何知道在表格中单击的元素?

javascript - 根据条件使用slideUp()和slideDown()函数

arrays - 如何在Elasticsearch中按值数组查询/过滤精确计数?