indexOf( ID )
в массиве, задающем порядок сортировки:var data = [
{ID: 1, country: 'England'},
{ID: 4, country: 'USA'},
{ID: 9, country: 'Russia'},
{ID: 5, country: 'Germany'},
{ID: 6, country: 'France'},
];
const order = [5,1,9,6,4];
data.sort((a,b) => order.indexOf(a.ID) - order.indexOf(b.ID));
/* [
{"ID":5,"country":"Germany"},
{"ID":1,"country":"England"},
{"ID":9,"country":"Russia"},
{"ID":6,"country":"France"},
{"ID":4,"country":"USA"}]
*/
data = data.map( e => {e.sortBy = order.indexOf(e.ID); return e;} );
data.sort( (a,b) => a.sortBy - b.sortBy);
var commons = {
el1: document.getElementById('id1')
,el2: document.getElementById('id2')
,el3: document.getElementById('id3')
}
function A( opts ){
opts.el1.innerHTML = 'aaa';
}
function B( opts ){
opts.el1.innerHTML = 'A.A.A.';
opts.el2.innerHTML = 'bbb';
opts.el3.innerHTML = 'ccc';
}
A( commons);
B( commons);
sv
, когда эта функция возвращает только str
?function stringTween(){
var sv = [1,2,3];
return function(){
sv[0] = 'a'; sv[1]='b'; sv[2]='c';
return "string";
}
}
stringTween();
sv
? stroke-dasharray
пунктиром. Очень-очень длинным пунктиром, таким, что один штрих захватывает всю окружность. Второй параметр, stroke-dashoffset
, сдвигает этот штрих "из кадра", оставляя видимой нужную его часть – соотв. отображаемому прогрессу.// ранее: var something = ... ;
if( Array.isArray( something) console.log( 'isArray: true' );
if( something instanceof Array) console.log( 'instanceof: true' );
if( Object.prototype.toString.call( something ) === '[object Array]' ) console.log( 'toString: true');
if( something.constructor === Array) console.log( 'constructor: true');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What do you think of Node.js? ', (answer) => {
// здесь что-то делайте с полученной строкой answer
console.log(`Thank you for your valuable feedback: ${answer}`);
rl.close();
});
var result = {};
for( prop in this) {
if( this.hasOwnProperty( prop) && typeof prop != 'function') {
result[ prop] = this[ prop];
}
}
return result;
const currentTime = 1501649511661
и в коде сравнивать с текущим системным временем. Различие более, чем на X считать признаком закэшированности страницы.site.ru/page?mytime=1501649511661
\b
посчитает любой кириллический символ не-принадлежащим к слову.\b
надо заменить на "начало строки или пробельный символ, после которого идёт искомые буквы": (?:^|\\s)
function findMatches( input, query) {
query = query.split(/\s+/);
var i, parts = [];
for(i in query) {
parts.push( '(?=.*(?:^|\\s)' + query[i] + ')');
}
var re = new RegExp('^' + parts.join(''), 'iug');
var matches = [];
for(i in str) {
if( re.test( str[i])) matches.push( str[i]);
}
return matches;
}
var str = [
"Превед веселый медвед"
,"Медведь, тебе привет"
,"ревед веселый едвед"
,"тебе привет"
];
var query = 'Пр мед';
var result = findMatches( str, query); // ["Превед веселый медвед","Медведь, тебе привет"]
...
оператор расширения (spread syntax) работает не в объявлении функции, а в её вызове; Upd. в объявлении функции троеточие тоже возможно и называется «оставшиеся параметры» (rest parameters) и, в отличие от arguments
в моём ответе (массивоподобный объект) является полноценным массивом переданных параметров. Всё это часть нового синтакса ECMAScript 6 и поддерживается не всеми браузерами.i = len
, но в массиве, скажем, длиной 3 нет элемента с индексом 3. Самый большой индекс это длина – 1 = 2
: [0, 1, 2]
function changeCollection() {
var result = [], i;
for( i = 0; i < arguments.length; i++) {
arguments[i].shift();
result.push( arguments[i]);
}
return result;
}
var args = [ [1,2,3], [4,5,6]];
changeCollection( ...args) // эксперимент не для всех браузеров [[2,3],[5,6]]
changeCollection( [7,8,9], ['a','b','c']) // работает везде [[8,9],["b","c"]]
function changeCollection(...arr) {
for( let i = 0; i < arr.length; i++) {
arr[i].shift();
}
return arr;
}
if(arguments[i] === 0 ) return 0;
function multiply() {
let len = arguments.length;
if( 0 === len) return 0;
for (let i = 0, calc = 1; i < len; i++) {
if (arguments[i] === 0) return 0;
calc = calc * arguments[i];
}
return calc;
}
IvanSidorov@mail.ru
, а иногда IVANsidorov@Mail.Ru