我有一个对象,其中包含像key = value这样的值列表。如何在JS中获得关键和价值。
[Object { name1="value1", name2="value2", }]
提前致谢
答案 0 :(得分:3)
获取密钥
Object.keys(yourObject)
从对象
获取单个值yourObject.key
答案 1 :(得分:2)
解决方案1
您可以单独访问每个密钥而无需迭代,如下所示:
var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second
解决方案2
您将使用for循环在对象内部进行迭代:
for(var i in foo){
alert(i); // alerts key
alert(foo[i]); //alerts key's value
}
解决方案3
如果您想获取所有密钥,ECMAScript会引入Object.keys。这只有较新的浏览器支持,但MDC documentation提供了另一种实现(也用于... in btw):
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;
}
当然,如果你想要两者,关键和价值,那么...... in是唯一合理的解决方案。
答案 2 :(得分:1)
要访问Object的值,您需要执行以下操作:
Object.name1 // => "value1"
Object.name2 // => "value2"
此处有关于对象的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
答案 3 :(得分:1)
const obj = {someKey: 'someValue'};
Object.keys(obj).forEach(key => console.log({key, value: obj[key]}));
答案 4 :(得分:1)
您可以使用不同的方法。
第一个可能是一个简单的for
循环
var obj = { name1:"value1", name2:"value2" };
for(let key in obj)
{
let value = obj[key];
console.log("Key:", key, " - ", "Value:", value);
}
答案 5 :(得分:1)
var obj = {name1:"value1", name2:"value2"}
拥有这样的对象,您可以使用两种方法为每个属性获取值:
第一:
obj.name1;
第二
obj["name1"];
如果你想拥有一个包含对象键的数组,请使用:
var arrayObjKeys = Object.keys(obj);
包含对象值的数组使用:
var arrayObjValues = Object.values(obj);
正如所提到的那样,无法从对象中获取关联数组: JavaScript不支持具有命名索引的数组。因此,您可以使用对象并将它们视为命名关联数组或存储键和值分开并对其进行处理。