2016-05-07 6 views
0

im работает в проекте с AngularJS и Firebase, все работает нормально.Выберите «колонку» из массива firebase

firebase Data

Но мне нужно «извлечь» только значение температуры в массиве, а затем значение влажности в другом массиве с JavaScript, конечно.

Я пытался с документацией, но я не могу найти способ, нет метода «Выбрать из» на firebase, не могли бы вы мне помочь?

Спасибо!

+0

Вы смотрели на '.map()' функциональность в Javascript? – DevNebulae

+0

Да, @GamerNebulae, но я не уверен, как это работает, поэтому я не мог понять :( –

ответ

1

Как работает функция map() в Javascript выглядит следующим образом.

Притворись у вас есть текущий набор данных:

var dataSet = [{ 
    humidity: 10.4, 
    temperature: 20.9, 
}, 
{ 
    humidity: 12.7, 
    temperature: 24.2, 
}]; 

Во-первых, функция собирается перебрать каждой записи в наборе данных. Это создает временную сложность O(n). Если вы не в скорости или это просто проект для удовольствия, не волнуйтесь, но это просто что-то, что нужно учитывать. То, что выполняет функция, это возврат новой коллекции на основе действий, которые вы делали в своем наборе данных. В вашем случае вы хотите только поле влажности return. Таким образом, вы делаете это:

var dataSet = ...; //See above 
var humidityCollection = dataSet.map(function(element) { 
    return element['humidity']; //You can also write element.humidity 
}); 

Подобно тому, как хэдз вверх, если вы используете ECMAScript 6 и выше, вы можете использовать функцию выше как лямбда-выражения. Он делает то же самое, но он просто сокращает код и делает его более читаемым.

var humidityCollection = dataSet.map((element) => { 
    return element['humidity']; 
}); 

Это приведет к следующему набору данных:

[10.4, 12.7] 

Источники, которые я использовал, и больше документации можно найти здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

+0

Ну, прежде всего, спасибо за вашу помощь, я попробовал такую ​​функцию, но выход представляет собой пустой массив –

+0

var incuData = new Firebase ('https://birdmaker.firebaseio.com/data'); var completeData = $ firebaseArray (incuData); var влажностьCollection = completeData.map (функция (элемент) { элемент возврата [ temp ']; // Вы также можете написать element.humidity }); –

+0

@SebasPinto Откуда берется '$ firebaseArray'? – DevNebulae

Смежные вопросы