const addDepth = (val, depth = 0) =>
val instanceof Object
? Object.entries(val).reduce((acc, n) => (
acc[n[0]] = addDepth(n[1], depth + 1),
acc
), { depth })
: val;
result
. В JavaScript массивы - это объекты, а при обращении к элементам массива вы получаете доступ к самим объектам, а не их копиям.let last = result[result.length - 1]
, last теперь указывает на тот же самый объект, что и последний элемент result.last[1]
фактически изменяет значение в result
, потому что last
и result[result.length - 1]
ссылаются на один и тот же объект в памяти.last[1] = Math.max(last[1], interval[1])
, где обновляется второй элемент последнего интервала в массиве result
. <?php
function reverse_vowels($word)
{
// получаем строку всех гласных букв. в слове
$vowels = implode( // объединяем массив в строку
array_filter(// получаем массив всех гласных букв. в слове
str_split($word), // разбиваем слово на буквы
function ($c) { // проверяем если буква гласная [ayeiou]
return preg_match("/[ayeiou]/i", $c);
}
)
);
echo "" . $vowels . PHP_EOL;
$v = 0;
$reverse = implode(// объединяем массив в строку
array_map(
function ($i) use ($word, $vowels, &$v) {// &$v переменная переданная по ссылке
$is_vowel = preg_match("/[ayeiou]/", $word[$i]);
return $is_vowel ? $vowels[strlen($vowels) - 1 - $v++] : $word[$i];
},
range(0, strlen($word) - 1) // массив [0, количество букв в слове - 1]
)
);
return $reverse;
}
echo reverse_vowels('environment');
function reverse_vowels($word) {
$vowels = [];
foreach(str_split($word) as $c) {
if (preg_match('/[ayeiou]/i', $c)) {
$vowels[] = $c;
}
}
$v = 0;
$reverse = '';
for ($i=0; $i < strlen($word); $i++) {
$is_vowel = preg_match('/[ayeiou]/i', $word[$i]);
$reverse .= $is_vowel ? $vowels[count($vowels) - 1 - $v++] : $word[$i];
}
return $reverse;
}
preg_match_all('/[ayeiou]/i', $word, $matches);
$vowels = $matches[0];
{
"code-runner.executorMap": {
"javascript": "node",
"php": "C:\\Users\\enten\\.vscode\\php\\php.exe", //путь до php, его надо скачать
"go": "go run",
"html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
},
}
В настройки переходим, там иконка в правом верхнем углу будет, для перехода в settings.json