javascript - 在对象中搜索数组的第一个元素以获取字段名称

标签 javascript

如何在此对象/数组中搜索第一个元素来获取字段名称?

在此示例中,如果我正在搜索 #999999,我需要获得第二个

colors = { 
    first: ['#cccccc', '#999999'],
    second: ['#999999', '#626262'],
    third: ['#eeeeee', '#afafaf']
};

我尝试过这样的事情:

for(var field in colors) {
    if(colors.hasOwnProperty(field)) {
        if(colors[field] === '#999999') {
            console.log(field); // gives 'second'
            var color1 = colors[field][0],
                color2 = colors[field][1];
        }
    }
}

也许这可以变得更加简单。

最佳答案

尝试使用 Object.keys()Array.prototype.filter() ;返回对象的属性名称,其中 "#999999" 位于数组的索引 0

var colors = {
  first: ['#cccccc', '#999999'],
  second: ['#999999', '#626262'],
  third: ['#eeeeee', '#afafaf']
};

var n = "#999999";

var res = Object.keys(colors).filter(function(key, index) {
  return colors[key][0] === n
});

console.log(res[0])

关于javascript - 在对象中搜索数组的第一个元素以获取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33717553/

相关文章:

javascript - Vue.js:折叠/展开来自父级的所有元素

javascript - HTML 5 中的实时音频流播放器

javascript - 检查 jquery 是否 div 有溢出元素

javascript - Angularjs动态添加 Controller

javascript - 重定向时强制页面刷新

javascript - 在js中迭代一个数组,同时仅将整数复制到另一个数组

带有 Twitter Bootstrap 进度条的 Javascript 倒计时

javascript - 检测是否已注入(inject) Chrome 扩展内容脚本/内容脚本包含 guard

javascript - 在选择选项中显示值而不是文本

javascript - 在 View 的 startkey 数组中传递空键