如果我有一个JS对象:

var foo = { 'bar' : 'baz' }

如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?


当前回答

如果您正在使用AWS CloudFront函数,那么这将为您工作。

function handler(event) {
    var response = event.response;
    var headers = response.headers;
    if("x-amz-meta-csp-hash" in headers){ 
        hash=headers["x-amz-meta-csp-hash"].value;
        console.log('hash is ' + hash);
    }
}

其他回答

既然你提到了$.each(),下面是一个可以在jQuery 1.6+中工作的方便方法:

var foo = { key1: 'bar', key2: 'baz' };

// keys will be: ['key1', 'key2']
var keys = $.map(foo, function(item, key) {
  return key;
});

获取对象的键/值的最佳方法。

让obj = { “key1”:“value1”, “key2”:“value2”, “key3”:“value3”, “key4”:“value4” } 种(obj) . map函数(k) { Console.log ("key with value: "+k +" = "+obj[k]) })

种() object .keys()方法返回给定对象自身可枚举属性的数组,其顺序与for…In循环(区别在于for-in循环也枚举原型链中的属性)。

var arr1 = Object.keys(obj);

Object.values () object .values()方法返回给定对象自身可枚举属性值的数组,其顺序与for…In循环(区别在于for-in循环也枚举原型链中的属性)。

var arr2 = Object.values(obj);

欲了解更多,请点击这里

这是最简单易行的方法。我们就是这么做的。

Var obj = {'bar': 'baz'} var key = Object.keys(obj)[0]; Var值= obj[key]; Console.log ("key = ", key) // bar Console.log ("value = ", value) // baz .log Object.keys()是javascript方法,在对象上使用时返回一个键数组。

Object.keys(obj) // ['bar']

现在您可以迭代对象,并可以访问如下值-

Object.keys(obj).forEach( function(key) {
  console.log(obj[key]) // baz
})

最简单的方法是使用Underscore.js:

键 _.keys(对象) 检索对象属性的所有名称。 _.键({一:1,二:2,三:3}); =>["一","二","三"]

是的,你需要一个额外的库,但它是如此简单!