javascript — Попытка сглаживания кода на node.js и cylon.js, но синтаксис не работает

Я новичок в JavaScript и пытаюсь установить сглаживающий фильтр для выходных данных из моего Leap Motion. Я получаю данные, используя Cylon.js, и он в основном выводит 3 значения (x, y и z). Однако я не могу заставить сглаживающий код работать, я думаю, это потому, что я привык к синтаксису C / C ++ и, вероятно, делаю что-то не так.

Код такой:

"use strict";

var Cylon = require("cylon");

var numReadings = 20;

var readings[numReadings];
var readIndex = 0;
var total = 0;
var average = 0;

for (var thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;
}

Cylon.robot({
connections: {
leapmotion: {
adaptor: "leapmotion"}
},

devices: {
leapmotion: {
driver: "leapmotion"}
},

work: function(my) {
my.leapmotion.on("hand", function(hand) {
console.log(hand.palmPosition.join(","));

// subtract the last reading:
total = total - readings[readIndex];
// read from the sensor:
readings[readIndex] = hand.palmPosition;
// add the reading to the total:
total = total + readings[readIndex];
// advance to the next position in the array:
readIndex = readIndex + 1;

// if we're at the end of the array...
if (readIndex >= numReadings) {
// ...wrap around to the beginning:
readIndex = 0;
}

// calculate the average:
average = total / numReadings;
console.log(average);
});
}
}).start();

Таким образом, данные, которые я пытаюсь отфильтровать, являются «hand.palmPosition». Но это дает мне следующую ошибку на консоли:

Ошибка консоли

Любая помощь приветствуется!

Спасибо

0

Решение

Это неверный JS:

var readings[numReadings];

Похоже, вы хотите readings быть массивом. Вам не нужно инициализировать массив JS с размером. Чтобы создать массив:

var readings = [];

Чтобы заполнить его нулями:

for (var thisReading = 0; thisReading < numReadings; thisReading++) {
readings.push[0];
}
0

Другие решения

Других решений пока нет …