Javascript заменить. Что-то с вар - PullRequest
0 голосов
/ 23 марта 2020

Я хочу заменить «Sensor1» на переменную, так как я хочу изменить то, что эта команда делает внутри для l oop (номер датчика):

  for(var i=1; i < len; i ++){
    let timestamps = [];
    let values = [];
    var d = cdata[i];
    ts_measures.forEach(ts_measure => {
        //console.log(ts_measure.val().timestamp, ts_measure.val().value);
        timestamps.push(ts_measure.val().time);
        values.push(ts_measure.val().Sensor1);
    });

Я уже пробовал эта опция, но, похоже, она не работает:

  for(var i=1; i < len; i ++){
    let timestamps = [];
    let values = [];
    var d = cdata[i];
    ts_measures.forEach(ts_measure => {
        //console.log(ts_measure.val().timestamp, ts_measure.val().value);
        timestamps.push(ts_measure.val().time);
        values.push(ts_measure.val().d);
    });

Я пытаюсь заменить «Sensor1» в первом фрагменте кода на d (переменная), как вы можете видеть во втором фрагменте.

cdata [0] = "Sensor1"; cdata [1] = "Sensor2";

Я бы очень хотел получить любую помощь.

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Вы можете получить доступ к свойству объекта с его именем в виде строки, используя синтаксис myObject["myPropertyName"].

Так что в вашем случае, учитывая cdata[0] = "Sensor1"; cdata[1] = "Sensor2"; и то, что вы извлекаете строковое значение с помощью переменной d ... просто используйте ts_measure.val()[d] для доступа к значению свойства.

 for(var i=1; i < len; i ++){
    let timestamps = [];
    let values = [];
    var d = cdata[i]; // retrieve "Sensor1" (and following "SensorX" string)
    ts_measures.forEach(ts_measure => {
        //console.log(ts_measure.val().timestamp, ts_measure.val().value);
        timestamps.push(ts_measure.val().time);
        values.push(ts_measure.val()[d]); // using `[d]` to retrieve property value
    });
0 голосов
/ 23 марта 2020

В JavaScript вы можете получить доступ к значению объекта одним из следующих способов:

const obj = {a: 1, b:2};

console.log(obj.a);

или другим:

console.log(obj['a']);

можно попробовать использовать скобочную запись со строкой или переменной внутри

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...