javascript - res.map() 不是一个函数,其中 res 是一个数组对象

标签 javascript mysql json

我有这种形式的数据

[ 

{ device_id: '12335',
    timestamp: '2018-05-14T08:31:23.000Z',
    temperatur: 21,
    pressure: 31,
    humidity: 20,
    equipment_name: 'truck5' },
  { device_id: '12335',
    timestamp: '2018-05-14T08:31:31.000Z',
    temperatur: 28,
    pressure: 35,
    humidity: 25,
    equipment_name: 'truck5' },
  { device_id: '12335',
    timestamp: '2018-05-14T08:31:33.000Z',
    temperatur: 36,
    pressure: 44,
    humidity: 33,
    equipment_name: 'truck5' },
  { device_id: '12335',
    timestamp: '2018-05-14T08:31:36.000Z',
    temperatur: 31,
    pressure: 39,
    humidity: 30,
    equipment_name: 'truck5' },
  { device_id: '12345',
    timestamp: '2018-05-14T08:31:23.000Z',
    temperatur: 21,
    pressure: 31,
    humidity: 20,
    equipment_name: 'truck5' },
  { device_id: '12345',
    timestamp: '2018-05-14T08:31:31.000Z',
    temperatur: 28,
    pressure: 35,
    humidity: 25,
    equipment_name: 'truck5' },
  { device_id: '12345',
    timestamp: '2018-05-14T08:31:33.000Z',
    temperatur: 36,
    pressure: 44,
    humidity: 33,
    equipment_name: 'truck5' },
  { device_id: '12345',
    timestamp: '2018-05-14T08:31:36.000Z',
    temperatur: 31,
    pressure: 39,
    humidity: 30,
    equipment_name: 'truck5' } ]

这是我从我的 sql 数据库中取回的数据。所以我用它来存储返回的结果。

var res1 =[];
res1 = JSON.parse(JSON.stringify(result));

但是现在当我在这些数据上使用 map 函数时,我得到了

res1.map() is not a function.

为什么会这样?

Map 函数适用于所有数组对象。当我手动将此数据复制到变量 res1=[{..}] 时,它正在工作。但现在它不起作用。

console.log(result) gives me this

[ RowDataPacket {
device_id: '12335',
timestamp: 2018-05-14T08:31:23.000Z,
temperatur: 21,
pressure: 31,
humidity: 20,
equipment_name: 'truck5' },

  RowDataPacket {
    device_id: '12335',
    timestamp: 2018-05-14T08:31:31.000Z,
    temperatur: 28,
    pressure: 35,
    humidity: 25,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12335',
    timestamp: 2018-05-14T08:31:33.000Z,
    temperatur: 36,
    pressure: 44,
    humidity: 33,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12335',
    timestamp: 2018-05-14T08:31:36.000Z,
    temperatur: 31,
    pressure: 39,
    humidity: 30,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12345',
    timestamp: 2018-05-14T08:31:23.000Z,
    temperatur: 21,
    pressure: 31,
    humidity: 20,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12345',
    timestamp: 2018-05-14T08:31:31.000Z,
    temperatur: 28,
    pressure: 35,
    humidity: 25,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12345',
    timestamp: 2018-05-14T08:31:33.000Z,
    temperatur: 36,
    pressure: 44,
    humidity: 33,
    equipment_name: 'truck5' },
  RowDataPacket {
    device_id: '12345',
    timestamp: 2018-05-14T08:31:36.000Z,
    temperatur: 31,
    pressure: 39,
    humidity: 30,
    equipment_name: 'truck5' } ]

这就是我使用 JSON.stringify() 的原因。仅使用 JSON.parse() 就会出现错误。 这是我正在使用的 mysql 函数

db.query(query,
         function (err, result, fields) {
    if (err) throw err;
    var res1 =[];
    res1=JSON.parse(JSON.stringify(result));
  console.log(res1);
  series:[
                res1.map(function(s) {
                    // Meta is only needed if using the tooltip plugin.
                    return {x: s.timestamp, y: s.temperature, meta: s.temperature + ' on ' + s.timestamp.toDateString()};
                })
            ]
 });

在使用 typeof result 或 res 或将其与我们的 without JSON.parse() 一起使用后,我将对象作为类型

最佳答案

JSON.stringifyJSON.parse彼此相反。如果您从 API 获取 JSON 字符串,则需要使用 JSON.parse 将其转换为 JavaScript 对象(在您的情况下为数组)。

另一方面,我认为 JSON.stringify 在这里不会对您有多大帮助。试试这个:

var res1 = JSON.parse(result);
res1.map( ... );

要了解有关您收到的响应类型的更多信息,您可以使用 console.log(typeof result)。如果在控制台生成 string,请使用 JSON.parse。如果它产生 object,则根本不需要使用 JSON.parse

关于javascript - res.map() 不是一个函数,其中 res 是一个数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328496/

相关文章:

javascript json 不显示所有条目

java - SpringBoot WebTestClient - 如何在graphql API中使用expectBody

javascript - TypeError : $(. ..).autocomplete(...).data(...) 未定义

javascript - javascript中的双向链表

javascript - 使用参数链接到路线的正确方法是什么?

c# - MySqlParameterCollection : How to add an explicit true/false value of a parameter for JSON boolean?

java - 将数据库配置查询值传递给 native 查询

php - 如何根据连接查询结果生成id

javascript - 如何编写依赖于动态选择器的函数?

java - 使用Gson库将JSON转换为Java对象第二个参数null