Как вытащить значение для конкретной записи в массиве? - PullRequest
0 голосов
/ 31 марта 2019

Мне нужно иметь возможность извлекать определенное значение из массива, чтобы иметь возможность использовать его в операторе IF для фильтрации данных в SQL. Моя цель состоит в том, чтобы создать что-то вроде этого

if(obj !== undefined){ //do something} else { //do something else }

Причина, по которой мне нужно это сделать, состоит в том, чтобы знать, есть ли запись в SQL или нет, и это было единственное, что я мог придумать. Чтобы проверить, возвращает ли оно какие-либо значения при его поиске.

Код:

con.query("SELECT * FROM whitelisttest WHERE (identifier) = (?)", [messageArray[1]], function (err, result) {
    if (err) throw err;
    var person = JSON.stringify(result);
    obj = JSON.parse(person);
    test = obj.whitelisted;
    console.log(result);
    console.log(obj);
    console.log(person);
    console.log(test);

Результат журнала консоли:

[ RowDataPacket { identifier: 'etanol', whitelisted: 3 } ]

[ { identifier: 'etanol', whitelisted: 3 } ]

[{"identifier":"etanol","whitelisted":3}]

undefined

Ожидаемый результат для вывода, который в настоящее время не определен и который называется тестом в коде, равным 3, и для результата, который будет этанолом, если я это сделал.

test = obj.identifier
console.log(test)

РЕДАКТИРОВАТЬ:

Решение, которое мне помогло (пропустил [0] при попытке сделать объект obj.whitelisted, когда предполагалось, что это объект obj [0]. Whitelisted)

con.query("SELECT * FROM whitelisttest WHERE (identifier) = (?)", [messageArray[1]], function (err, result) {
            if (err) throw err;
            var person = JSON.stringify(result);
             obj = JSON.parse(person);
             console.log(obj[0].whitelited)

Ответы [ 2 ]

1 голос
/ 31 марта 2019

это массив console.log(Array.isArray(result) ) // => true

, поэтому ваш полный ответ должен быть:

con.query( "SELECT * FROM whitelisttest WHERE (identifier) = (?)"
          , [messageArray[1]]
          , function (err, result)
            {
              if (err) throw err;
              console.log(result[0].whitelisted)
              //...

не нужно использовать JSON.stringify и then JSON.parse

var obj = [ { identifier: 'etanol', whitelisted: 3 } ];


console.log(' obj[0].whitelisted => ', obj[0].whitelisted);  // => 3

var ref = 'whitelisted';

console.log(' obj[0][ref] => ', obj[0][ref]);  // => 3

console.log(' obj[0]["whiteliste"] => ', obj[0]['whitelisted']); // => 3
0 голосов
/ 31 марта 2019

Поскольку это массив, вам необходимо получить доступ к свойству whitelisted первого элемента:

var person = [{
  "identifier": "etanol",
  "whitelisted": 3
}]

console.log(person[0].whitelisted);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...