我有一个对象,假设是项目,并且我试图遍历该对象,并且出现此错误“无法将未定义或null转换为该对象。
let items = {
id: 1,
name: "name1",
currency: "usd"
}
const result = Object.keys(items).map(index => index.name);
console.log(result);
答案 0 :(得分:3)
如果要获取密钥,请使用Object.keys
。值Object.values
:
let items = {
id: 1,
name: "name1",
currency: "usd"
};
const keys = Object.keys(items);
const vals = Object.values(items);
console.log(keys);
console.log(vals);
.as-console-wrapper { max-height: 100% !important; top: auto; }
根据您当前使用Object.keys
编写的代码,我认为您想要items[index]
而不是index.name
:
let items = {
id: 1,
name: "name1",
currency: "usd"
}
const result = Object.keys(items).map(index => items[index]);
console.log(result);
答案 1 :(得分:1)
您可以像这样遍历给定keys
的{{1}}和values
object
答案 2 :(得分:0)
在键上进行映射时,将获得键而不是对象。另外,Object.keys
本身会返回一个键数组,但是,如果您需要值,请使用Object.values()
let items = {
id: 1,
name: "name1",
currency: "usd"
}
const result = Object.keys(items);
const sol = Object.values(items);
console.log(result, sol);
答案 3 :(得分:0)
这是真正的代码,也许可以为您提供帮助。 Object.keys(object)将返回对象键的数组
Object.keys(items) // => ['id', 'name', 'currency']
['id', 'name', 'currency'].map(index =>n. index)//there is no ‘name’ attribute, so it will definitely be undefined
答案 4 :(得分:0)
没有必要映射。只需使用
Object.values(items) for values
或
Object.keys(items) for keys
let items = {
id: 1,
name: "name1",
currency: "usd"
}
const result = Object.values(items)
console.log(result);
答案 5 :(得分:0)
Object.keys()
方法返回给定对象自己的属性名称的数组,其顺序与我们在普通循环中获得的顺序相同。
const items = {
id: 1,
name: 'name1',
currency: 'usd'
};
console.log(Object.keys(items)); //outputs ['id','name','currency']
自从您使用过Object.keys(items).map(index => index.name);
id.name
将是undefined
,因此您将获得undefined
因此,您可以使用
const result = Object.keys(items).map(index => items[index]);
这将导致[1,'name1','usd']