function toMatrix(arr) {
const len = arr.length;
const side = Math.ceil( Math.sqrt(len));
if( side * side - len !== 1) throw "Bad array length";
let result = [], index;
for(let row = 0; row < side; row++) {
result.push([]);
let currentRow = result[result.length - 1];
for(let col = 0; col < side; col++) {
index = side * row + col;
if(index > len) break;
if(index === len) {
currentRow.push(0);
} else {
currentRow.push(arr[index]);
}
}
}
return result;
}
toMatrix([1,2,5]) // [[1,2],[5,0]]
toMatrix([1,2,3,4,5,6,7,8]) // [[1,2,3],[4,5,6],[7,8,0]]
function toMatrix(arr) {
const len = arr.length;
const side = Math.ceil( Math.sqrt(len));
if( side * side - len !== 1) throw "Bad array length";
let result = [];
for(let row = 0; row < side; row++) {
result.push( arr.slice(side * row, side * (row+1))); // выкусываем подряд строку, side элементов
}
result[side - 1].push(0); // в последниюю строку дописываем 0
return result;
}
toMatrix([1,2,5]) // [[1,2],[5,0]]
toMatrix([1,2,3,4,5,6,7,8]) // [[1,2,3],[4,5,6],[7,8,0]]
значение_поля_внутреннего_объекта: ключ_внешнего_объекта
var house = {}; // внешний объект
var names = {}; // доп. словарь для поиска
function add(num, flat) {
house[num] = flat; // добавили внутренний объект
names[flat.name] = num; // запись для поиска в словарь
}
add(11, {name:"Vasya", phone:"555-111", area:111, price:1111});
add(22, {name:"Lena", phone:"555-222", area:222, price:2222});
names["Lena"] // 22
function get(name) {
return house[ names[name]];
}
get("Lena") // {name:"Lena", phone:"555-222", area:222, price:2222}
значение_поля: сам_внутренний_объект
var myEvent = new Event('teaTime');
Остается положить конверт на нужный столик: document.getElementById('stolik').dispatchEvent(myEvent);
var event = new CustomEvent('saySomething', { detail: "Hello there!" });
preg_match('/^(.+)\ \((.+)\)/', $name, $matches);
array_shift($matches);
$matches; /*Array
(
[0] => Ньютон И.И.
[1] => Тринити коледж, Кембридж
)*/
$name = "Ньютон И.И. (Тринити коледж, Кембридж)";
$name = substr($name, 0, -1);
$result = explode(' (', $name);
print_r($result);
results
.data.results.forEach( film => {
:hover
$('.sounds-wrapper').on('mouseenter', function() {
$(this).addClass('sounds-wrapper-active');
});
$('.sounds-wrapper').on('mouseleave', function() {
$(this).removeClass('sounds-wrapper-active');
});
.sounds-wrapper { ... }
.sounds-wrapper:hover { ... здесь то, что раньше было в .sounds-wrapper-active }
/Illuminate/Cache/MemcachedStore
$this->memcached->set($this->prefix.$key, $value, $this->toTimestamp($minutes));
var context = this;
var calina = {
write: function() {
for(var prop in context) {
if(context[prop] !== this) continue;
console.log("Found self:", prop);
return prop;
}
}
}
calina.write(); // 'calina'
context
а «искать себя» в объекте window
:var calina = {
write: function() {
for(var prop in window) {
if(window[prop] !== this) continue;
console.log("Found self:", prop);
return prop;
}
}
}
calina.write(); // 'calina'
var calina2 = calina;
Предусмотрите этот случай и собирайте/возвращайте массив значений в таком случае.