【发布时间】:2020-01-30 11:03:53
【问题描述】:
我在获取对象道具时遇到问题...
这是我的 json 文件
formControlOptions: any[] = [
{
{ type: "INPUT",
value: "none,"
}
},
{
type: "SELECT_BOX",
value: "none",
options: ["select option 1", "select option 2", "select option 3"]
},
{
type: "RADIO_BTN",
value: "none",
options: ["radio option 1", "radio option 2", "radio option 3"]
}
];
这是我尝试获取数据的地方。我也尝试制作JSON.parse(),但我总是得到UNDEFINED
for (let v of this.formControlOptions) {
if (Object.keys(v) === "INPUT") {
console.log(v); // { INPUT: { value: "none" })
console.log(typeof v); // object
console.log(v.value); // undefined
console.log(Object.keys(v).value); // undefined
console.log(JSON.parse(v).value); // undefined
}
【问题讨论】:
-
你真的应该停止使用
==来处理你不明确想要松散等于的场景。 -
这只是举例......在这种情况下,我会像我期望的那样得到真实并得到所有
console.logs -
另外,你正在通过反复试验进行编程 - 你已经登录了
v,你想要v.INPUT.value。 -
v.value 未定义,因为 v 是一个对象 =
{INPUT: { value: "none" }},因此您必须检查 v.INPUT.value,但我不确定您要在这里实现什么。我建议您更改 json 的结构。因此,可能会在其中保存输入类型的位置添加一个名为 type 的键。如果您不理解这一点,我可以更好地解释。 -
"这是我的 json 文件" 那不是 JSON。这是一个数组。 JSON 是 JavaScript 对象的字符串表示形式。正如您所注意到的,
typeof v不是 字符串。如果不是字符串,解析 JSON 是没有意义的。
标签: javascript angular typescript