data = [
["M166 E16", "A-Class", "2004", "A 160", "W168.II", "бензин"],
["M166 E19", "A-Class", "2004", "A 190", "W168.II", "бензин"],
// и остальные данные.
];
// вместо многократного
($("#class").val())
// лучше один раз
var _class = $("#class").val();
// и потом использовать значение этой переменной
-1
короче записать так: !!~value
– тоже будет false
только если value == -1
$(document).ready(function() {
const data = [
["M166 E16", "A-Class", "2004", "A 160", "W168.II", "бензин"],
["M166 E19", "A-Class", "2004", "A 190", "W168.II", "бензин"],
["M266 E15", "A-Class", "2005", "A 150", "W169.I", "бензин"],
// и остальные данные.
];
$('.left').on('input', function() {
const _class = $("#class").val(),
_model = $("#model").val(),
_god = $("#god").val(),
_kuzov = $("#kuzov").val(),
_tip = $("#tip").val()
;
var index = -1; // сначала считаем, что "не найдено"
for(let i = 0; i < data.length; i++) {
let car = data[i];
if( !!~car.indexOf(_class)
&& !!~car.indexOf(_model)
&& !!~car.indexOf(_god)
&& !!~car.indexOf(_kuzov)
&& !!~car.indexOf(_tip)
) {
index = i;
break;
}
}
if(!!~index) { // нашли и index стал больше -1
$("#page-title").html( "Мотор " + data[i][0] );
} else { // не нашли и index === -1
$("#page-title").html( "Нет такого" );
}
});
});
<br>
на \n
. textarea
в div
– наоборот, \n
на <br>
:document.getElementById("btn-from")
.addEventListener('click',function(){
elTa.value = elSrc.innerHTML
.replace(/<br\/?>/ig, '\n')
.replace(/\n+/g, '\n')
.trim()
;
});
document.getElementById("btn-to")
.addEventListener('click',function(){
elSrc.innerHTML = elTa.value
.replace(/\n/g, '<br>')
.trim()
;
});
бесконечность минус 1
:break
. break
нужен. У вас функция, которая должна вернуть значение. Как только обнаружили, что найден делитель, всё, можно сразу возвращать результат «Составное число».function testCycle(n) {
for (let i = 2; i < n / 2; i++)
if (n % i === 0)
return "Составное число";
return "Простое число";
}
let
– это то же, что и var
, но действует не в рамках всей функции, а только в рамках блока. В данном случае, внутри цикла.===
– это «строгое» равенство. То же, что и ==
, но ещё и проверяет, чтобы типы совпадали, т.е. не прокатит "0" === 0
. Зато работает чуть быстрее.n
, а до n / 2
, т. к. целые множители не могут превышать половину произведения (второй множитель не меньше 2)You can use the "cut" and "copy" commands without any special permission if you are using them in a short-lived event handler for a user action (for example, a click handler).
$d = array('test-site', 'ru');
$e = array('ST-214E2210-33FE865E-EC05E9A3', 'ST-204C2010-3DEFEFBE-C30E1243', 'ST-214E4000-3D4F3356-E2BCEEBB');
do {
$b = implode('.', $d); // склеили, получили "test_site.ru"
foreach ($e as $sKey){ // перебираем ключи
$a = explode('-', $sKey) + array(0, 0, 0, 0); // разбили по дефису в массив,
// убедились, что в массиве как минимум 4 элемента (если меньше, допис. нулями)
!( // логическое отрицание того, что в скобках
Core::convert64b32( // из 64 бит в 32
Core::convert64b32(
hexdec($a[3]) // последний фрагмент ключа перевели из 16-ричного в 10-е число
)
^ // ксор, побитовое исключающее ИЛИ
abs(Core::crc32($b)) // 32-битное число, хэш из адреса сайта
)
^ // XOR см. выше
~( // побитовое отрицание
Core::convert64b32(
Core_Array::get( // тут из конфига получают значение "hostcms"
Core::$config->get('core_hostcms'),
'hostcms'
)
)
& // побитовое И
abs(Core::crc32($b))
^
Core::convert64b32(
hexdec($a[2]) // предпоследний фрагмент из ключа, как число
)
)
)
&& // только если выше в скобках получился 0, выполнится следующая строка
Core::$url['key'] = $sKey;
}
array_shift($d);
} while(count($d) > 1);
$a = explode('-', $sKey) + array(0, 0, 0, 0);
sh()
переопределяете для каждой статьи заново – остаётся последний вариант.display:none
У вас это text__podzigilovol
. id
управляемой статьи в data-атрибуте: data-id="info-2"
– так кнопка будет «знать», кем она управляет.javascript:...
, вместо этого лучше на них повесить слушателя события клика. Удобно дать всем кнопкам определённый класс, по нему их отыскать и в цикле повесить слушателя события.this
кликнутую ссылку. Из неё берёт data-атрибут с id
нужного блока. И включает/выключает ему класс, который прячет этот блок.function sh(event) {
const className = "text__podzigilovol";
event.preventDefault();
obj = document.getElementById(this.dataset.id);
if(!obj) return;
if( obj.classList.contains(className)) {
obj.classList.remove(className);
} else {
obj.classList.add(className);
}
}
Array.prototype.forEach.call(
document.querySelectorAll('.js-btn-readmore'),
function(e){
e.addEventListener('click', sh);
}
);
"cloo"
два значения ["cool", "looc"]
, а для остальных по одному.<?php
$data = [
"cool" => [0 => "c", 1 => "o", 2 => "o", 3 => "l"],
"looc" => [0 => "l", 1 => "o", 2 => "o", 3 => "c"],
"test" => [0 => "t", 1 => "e", 2 => "s", 3 => "t"],
"set" => [0 => "s", 1 => "e", 2 => "t"],
"get" => [0 => "g", 1 => "e", 2 => "t"]
];
$groups = [];
foreach( $data AS $k => $v) {
sort($v);
$hash = implode('', $v);
if(!isset($groups[$hash])) $groups[$hash] = [];
array_push($groups[$hash], $k);
}
$result = array_values($groups);
print_r($result);
/*
Array(
[0] => Array
(
[0] => cool
[1] => looc
)
[1] => Array
(
[0] => test
)
[2] => Array
(
[0] => set
)
[3] => Array
(
[0] => get
)
)
*/
.length
– вероятно, собирались перебирать i от 0 до длины строки arr1
. Тут не массивы, а две строки.for (i=0; i<arr1.length; i++) {
for (j=0; j<arr2.length; j++){
i
букву, достаточно взять i-й элемент строки arr2
:arr2[ i ];
var arr1 = '3649824598';
var arr2 ='АБВГДЕЖЗИК';
arr1.split('').map(n => arr2[n]).join('') // ГЖДКИВДЕКИ
split('')
сделает из строки массив цифр;map()
применит к каждой цифре функцию, которая заменит цифру на соотв. букву из arr2
;join('')
склеит элементы массива (теперь уже буквы) в одну строку.модуляция сигнала - фазовая. На один бит отводится один период. Смена фазы колебаний означает смену логического состояния от 0 к 1 или наоборот
01100010
, это заняло бы 8 периодов, т.е. 8/10000-х секунды, и фаза поменялась бы 4 раза.