如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
当前回答
既然你提到了$.each(),下面是一个可以在jQuery 1.6+中工作的方便方法:
var foo = { key1: 'bar', key2: 'baz' };
// keys will be: ['key1', 'key2']
var keys = $.map(foo, function(item, key) {
return key;
});
其他回答
// iterate through key-value gracefully
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}
参考MDN
如果你想获得所有的键,ECMAScript 5引入了Object.keys。这只有较新的浏览器支持,但MDC文档提供了另一种实现(它也用于…顺便说一句):
if(!Object.keys) Object.keys = function(o){
if (o !== Object(o))
throw new TypeError('Object.keys called on non-object');
var ret=[],p;
for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
return ret;
}
当然,如果你同时需要键和值,那么for。是唯一合理的解决办法。
易读且简单的解决方案:
Const object1 = { 首先:“我是第一个”, second:“我是第二名” }; for (const [key, value] of Object.entries(object1)) { console.log(“${关键}:$ {value}”); } //期望输出: // "我是第一个" // "second: I am second"
你可以使用Object。按键功能,获得按键如下:
const tempObjects={foo:"bar"}
Object.keys(tempObjects).forEach(obj=>{
console.log("Key->"+obj+ "value->"+tempObjects[obj]);
});
用于在javascript中访问对象或地图中的键的每个循环
for(key in foo){
console.log(key);//for key name in your case it will be bar
console.log(foo[key]);// for key value in your case it will be baz
}
注:也可以使用
种(foo);
它会像这样给你 输出:
(酒吧);