我想从中获取值
[{"code":"RRR","name":"Name","rate":"1.17","$key":"MeJy8ClJvJy"}]
我使用了 Object.values(obj)
并且我得到了相同的
[{"code":"RRR","name":"Name","rate":"1.17","$key":"MeJy8ClJvJy"}]
虽然我尝试使用
function* values(obj: string) {
for (let prop of Object.keys(obj)) yield obj[prop as any];
}
以及
Object.keys(obj).map(k => obj[k as any]);
这两个都让我产生了
["[", "{", "\"", "c", "o", "d", "e", "\"", ":", "\"", "R", "R", "R", "\"", ",", "\"", "n", "a", "m", "e", "\"", ":", "\"", "N","a","m","e" "\"", ",", "\"", "r", "a", "t", "e", "\"", ":", "\"", "1", ".","1", "7", .....
在 chrome Version 91.0.4472.164 (Official Build) (64-bit)
上
但有趣的是使用 TS Playground 日志是一样的
[{"code":"RRR","name":"Name","rate":"1.17","$key":"MeJy8ClJvJy"}]
但是如果我从中删除 []
一切正常并且我打算让它工作。但唯一的问题是,我仅以这种方式获取数据。我正在使用 typescript 4.3.5
和 angular 12.1
。提前致谢
答案 0 :(得分:2)
const data = [{"code":"RRR","name":"Name","rate":"1.17","$key":"MeJy8ClJvJy"}];
当您称呼它们时,[]
将其描述为 Array
。所以你应该为这些使用数组函数。 {}
表示一个普通对象。
如果你想查看数组中的所有值,你会得到一个像这样的对象列表:
data.forEach((item) => console.log(item));
这将为数组中的每个项目记录一个项目。
如果要查看数组中对象的属性值,可以执行以下操作:
data.forEach((item) => console.log(Object.values(item)));
一个小而重要的提示。我完全赞成从 TypeScript
而不是简单的 JavaScript
开始,但在开始像 Angular 这样大的事情之前,首先要在你的脑海中巩固语言的基本概念。
答案 1 :(得分:0)
Spread 运算符应该这样做 -
console.log(Object.values(...[{"code":"RRR","name":"Name","rate":"1.17","$key":"MeJy8ClJvJy"}]))