JQuery - .map不是一个函数

时间:2017-11-09 15:17:20

标签: jquery array.prototype.map

我有以下代码:

var fieldsJson = formBuilder.actions.getData('json', true);

console.log(fieldsJson);

var nameArr = fieldsJson.map(function (item) { return item.name });

但我一直收到错误:

fieldsJson.map is not a function

控制台显然将fieldsJson显示为对象数组,如下所示:

[
  {
    "type": "text",
    "label": "Text Field",
    "className": "form-control",
    "name": "testfield",
    "subtype": "text",
    "customField": true
  },
  {
    "type": "text",
    "label": "Text Field",
    "className": "form-control",
    "name": "testfield",
    "subtype": "text",
    "customField": true
  }
]

那么为什么它会为地图功能抛出错误?

2 个答案:

答案 0 :(得分:0)

如果fieldsJson是String,则需要使用JSON.parse解析它:

var fieldsJson = formBuilder.actions.getData('json', true);

console.log(fieldsJson);

fieldsJson = JSON.parse(fieldsJson)
var nameArr = fieldsJson.map(function (item) { return item.name });

答案 1 :(得分:0)

您几乎肯定会查看JSON字符串表示形式。这也将捕获任何格式错误的json:

try {
  JSON.parse(fieldsJson);
} catch (e) {
  console.log(e);
}

JSON.parse()

的详细信息