Подключите специальную хранимую процедуру в вашу базу данных, которая оповещает ваше приложение после изменения. Вам понадобится настраиваемый модуль и правильные триггерные операторы.
Другой вариант - опрос.
Как насчет этого?
parseFloat(input.substring(5,10));
Где 5,10
- начальные и конечные смещения нужного фрагмента строки.
Эта функция может обрабатывать несколько белых пробелов, а также вход, который не анализируется как float.
input = "123 123 123 foo", start = 0, end = 0, result = [], num;
// empty string evaluates to false
while( end < input.length ) {
end = input.indexOf(" ", start );
// -1 => only one element in input || end of the string has been reached
if( end === -1 ) { end = input.length }
num = parseFloat( input.substring( start, end ) );
// Should extracted string fail to parse then skip
if( num ) result.push( num );
// move forward or end will match current empty space
start = end + 1;
}
result[2] // => "123";
Fiddle здесь
UPDATE
Просто была мозговая волна. Не используйте функцию карты, но просто используйте массив, созданный путем разделения строки следующим образом:
var floats = input.split(' ');
for( var i = 0, len = input.length; i < len; i++ ) {
input[i] = parseFloat( input[i] );
}
Если вы префикс своей строки одним пробелом, вы можете использовать это, чтобы получить первое число из строки:
var start = 0 // Initial search offset.
var firstOccurence = input.indexOf(' ', start);
//Get the substring from the first occurrence of ' ' after start, to the next one, and parse it as a float.
parseFloat(input.substring(firstOccurence , input.indexOf(' ', firstOccurence+1)));
Затем вы можете использовать следующее, чтобы получить числа после этого, из строки:
firstOccurence = t.indexOf(' ', firstOccurence+1);
parseFloat(t.substring(firstOccurence , t.indexOf(' ', firstOccurence+1)));
Используя это в цикле, вы можете выполнить поиск в своем списке, и вы можете начать поиск в списке по указанному индексу. Например, вы не можете запросить 7-й поплавок в списке. Единственный надежный способ сделать это - использовать .split(' ')
или использовать приведенный выше код в цикле.
Чтобы найти n
th float на входе, вы можете использовать следующее:
for(var i = 0, previousIndex = 0; i < n; i++){
previousIndex = input.indexOf(' ', previousIndex + 1);
}
var float = parseFloat(input.substring(previousIndex, input.indexOf(' ', previousIndex + 1)));
++lastIndex
фактически не изменяет значение lastIndex
, так как оно является частью правой части присваивания lastIndex
– Asad Saeeduddin
26 November 2012 в 14:06
var x = 0; var v = ++x; x //=>1; v //=>1;
– Bruno
26 November 2012 в 14:13
var v= 0; v = v++;
. Это приведет к нулю нуля. Оригинал не затрагивается, но вы используете его как RHS для другого i> назначения.
– Asad Saeeduddin
26 November 2012 в 14:18
v = 0; v = ++v; v = ++v; //=> 0, 1, 2
И увеличение Chrome и Firefox v.
– Cerbrus
26 November 2012 в 14:20