- return item[index] >= 25
+ return item[1] >= 25 && item[2] === true
<?php
function formatList(array $list): string
{
$result = '';
foreach ($list as $key => $value) {
if (!is_array($value)) {
$result .= "<li>{$key} => {$value}</li>";
continue;
}
$result .= "<li>{$key} =></li>";
foreach ($value as $item) {
$result .= formatList($item);
}
}
if ((debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['function'] ?? '') !== 'formatList') {
$result = "<ul>{$result}</ul>";
}
return $result;
}
print formatList($arr);
<ul><li>id => 1</li><li>name => item1</li><li>items =></li><li>id => 2</li><li>name => item2</li><li>items =></li><li>id => 3</li><li>name => item3</li><li>items =></li><li>id => 4</li><li>name => item4</li><li>items =></li><li>id => 5</li><li>name => item5</li><li>items =></li><li>id => 6</li><li>name => item6</li><li>items =></li></ul>
const array1 = [{
'id': 3231,
'stage': 3,
'sort': 999,
}];
const array2 = [{
'id': 3231,
'status_client': 3,
'status_date': '2024-11-22 16:18:58',
'sort': 999,
}];
const map = new Map(array2.map((item) => [item.id, item]));
const reduced = array1.reduce((acc, item) => {
const _item = map.get(item.id);
_item
? acc.push({..._item, ...item})
: acc.push(item);
return acc;
}, []);
console.log(reduced);
// [
// {
// id: 3231,
// status_client: 3,
// status_date: '2024-11-22 16:18:58',
// sort: 999,
// stage: 3
// }
// ]
new Date (2001, 5, 5)
— это июнь (06), это нужно учитывать. Кроме того, вы делаете проверку, если день меньше 10 и месяц меньше 10, при этом действие внутри блока бессмысленно — data
далее не используется.const getDateFormat = (date = new Date(2001, 4, 5), separator = '.') => {
const days = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0');
const year = date.getFullYear();
return [days, month, year].join(separator);
};
const getDateFormat = (date = new Date(2001, 4, 5), separator = '.') => {
const options = { day: '2-digit', month: '2-digit', year: 'numeric' };
const formatter = new Intl.DateTimeFormat('ru-RU', options);
return formatter.format(date).replace(/\./g, separator);
};
Но таблиц стало много и неопределённо много.
filter
(а ещё Safari - говорят, яблочные уроды пока не реализовали поддержку методов итераторов; впрочем, сделать обычный for...of
вместо reduce
не проблема):function countIntersections(data1, data2, key = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const keys = new Set(Array.from(data2, getKey));
return data1[Symbol.iterator]().reduce((acc, n) => acc + keys.has(getKey(n)), 0);
}
const result = countIntersections(newWord, glas);
.countIntersections(Array(7).keys(), Array(4).keys()) // 4
countIntersections('abCdE', 'ACe', n => n.toLowerCase()) // 3
countIntersections([ { id: 1 }, { id: 2 }, { id: 3 } ], [ { id: 3 } ], 'id') // 1
$hlSelect = array('COST.ID', 'COST.UF_NAME');
i
— это индекс массива — номер позиции в нём, считая от 0
.arr[i]
— значение, которое лежит в массиве arr
в позиции i
.arr[4]
например – это пятая по счету коробка, т.к. счет идёт от 0.<?php
$goods = [
'ASUS TUF' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
'ARDOR GAMING NEO' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
'MSI Katana' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
'HUAWEI MateBook D 16 2024 MCLF-X' => ['Ноутбуки для работы', 'Ультрабуки'],
'Samsung Book3 Pro 360 NP960' => ['Ноутбуки для работы', 'Ультрабуки', 'Ноутбуки-трансформеры']
];
echo "<ul>";
foreach ($goods as $name => $categories) {
echo "<li>$name: " . implode(", ", $categories) . "</li>";
}
echo "</ul>";
?>