如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
当前回答
美元。每个都是一个库结构,而对于…In是原生js,这应该更好
其他回答
最简单的方法是使用Underscore.js:
键 _.keys(对象) 检索对象属性的所有名称。 _.键({一:1,二:2,三:3}); =>["一","二","三"]
是的,你需要一个额外的库,但它是如此简单!
除了……没有别的办法了。在。如果你不想使用它(可能是因为在每次迭代中测试hasOwnProperty的效率很低?),那么使用一个不同的构造,例如kvp的数组:
[{ key: 'key', value: 'value'}, ...]
如果您正在使用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);
}
}
种() object .keys()方法返回给定对象自身可枚举属性的数组,其顺序与for…In循环(区别在于for-in循环也枚举原型链中的属性)。
var arr1 = Object.keys(obj);
Object.values () object .values()方法返回给定对象自身可枚举属性值的数组,其顺序与for…In循环(区别在于for-in循环也枚举原型链中的属性)。
var arr2 = Object.values(obj);
欲了解更多,请点击这里
我也遇到过同样的问题,这个方法很有效
//example of an Object
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
//How to access a single key or value
var key = Object.keys(person)[0];
var value = person[key];