// классификатор – возвращает название класса
// к которому относится переданное значение
// неважно, как называть классы, лишь бы по-разному
function classify(i) {
if( typeof i === "number") return "my_number";
return "my_string";
}
// группирует в подмассивы идущие подряд
// значения одного класса
function group(a) {
var i, item, c={prev:null, curr:null}, result=[], to;
for(i=0; i<a.length; i++) {
item = a[i];
c.curr = classify(item);
if(!c.prev || c.prev !== c.curr) {
c.prev = c.curr;
result.push([]);
to = result[result.length-1];
}
to.push(item);
}
return result;
}
$str = 'prosto+tyt+slova+raznie';
$words = explode('+', $str); // массив слов
if( count( $words) > 1) {
array_pop($words); // выкидываем последнее слово, если их больше 1
printf( '<a href="#%s">%s</a>', implode('+', $words), implode(' ', $words));
}
var tags = [
"Value 0",
"Value 1",
"Value 2",
"Value 3",
]
,selected = []
,$in = $('#workDesignTags')
;
render();
$("#workDesignLabels input").on("change", clickHandle);
function render() {
var i, v, items=[];
for(i=0;i<tags.length; i++) {
v = tags[i];
items.push( $('<label>').append( $('<input>', {
type:"checkbox",
name:"design",
value: i,
})).append( v)
);
};
$('#workDesignLabels').append(items);
}
function clickHandle() {
var i, k = $(this).val(), result = [];
if( !!~(i = selected.indexOf(k))) {
selected.splice( i, 1);
} else {
selected.push(k);
}
for(i=0;i<selected.length;i++) result.push( tags[ selected[i]]);
$in.val( result.join(', '));
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="formRow labelBox col3 dropDownMobile" id="workDesign">
<input type="text" name="tags" id="workDesignTags">
<div id="workDesignLabels"></div>
</div>
i--
затем, чтобы, удалив только что какой-то элемент вне диапазона, «текущий» элемент указывал на следующий.i=2
, текущий элемент arr[2]
это 8, вне диапазона. arr.splice(2,1)
удалит этот элемент. Теперь на месте arr[2]
оказывается уже 1.i--
, следующее значение i
в итерации цикла будет уже 3, а arr[3]
это 12 – выходит, "1" пропустили и даже не рассматривали. window.applicationCache.swapCache()
– но он не обновит уже загруженные в приложение файлы. Поэтому после этого хорошо бы перезагрузить и страницу.ffprobe -v quiet -print_format json -show_format music.mp3
{
"format": {
"filename": "music.mp3",
"nb_streams": 2,
"nb_programs": 0,
"format_name": "mp3",
"format_long_name": "MP2/3 (MPEG audio layer 2/3)",
"start_time": "0.025056",
"duration": "219.350204",
"size": "7072585",
"bit_rate": "257946",
"probe_score": 51,
"tags": {
"title": "Rihanna - Work (Feat. Drake)(VipMusic.In)",
"artist": "VipMusic.In",
"album": "Rihanna - ANTi (2016) - VipMusic.In",
"composer": "VipMusic.In",
"copyright": "VipMusic.In",
"publisher": "VipMusic.In",
"genre": "[VipMusic.In]"
}
}
}
toString()
у объекта не определён, строка будет "[objectObject]".render() {
var i, rows = [];
for(i=0;i<N;i++) { rows.push( <UserRow key={ i } /> ); }
// ..
return (
<div>
{ rows }
</div>
);
}
$date = new DateTime(); // объект с текущей датой-временем
$date->sub(new DateInterval('P46D')); // вычли интервал 46 дней
echo $date->format('Y-m-d') . "\n"; // 2016-02-02
(123,456,789) // 789