fetch('https://jsonplaceholder.typicode.com/albums')
.then(r => r.json())
.then(r => {
const keys = [ 'userId', 'id', 'title' ];
// собираем разметку
document.body.insertAdjacentHTML('beforeend', `
<div class="wrapper">${r.map(n => `
<div class="item">${keys.map(k => `
<div>${k}: ${n[k]}</div>`).join('')}
</div>`).join('')}
</div>
`);
// или, создаём элементы напрямую
function createElement(tag, className, children) {
const el = document.createElement(tag);
el.className = className;
el.append(...children);
return el;
}
document.body.append(
createElement('div', 'wrapper', r.map(n =>
createElement('div', 'item', keys.map(k =>
createElement('div', '', [ `${k}: ${n[k]}` ])
))
))
);
});
.wrapper {
border: 3px solid black;
padding: 10px;
margin: 10px;
}
.item {
border: 1px solid silver;
padding: 5px;
margin: 5px;
}
const block = document.querySelector('.block');
const wrapper = document.createElement('div');
wrapper.classList.add('another__block');
const parent = block.parentNode;
const childNodes = [...parent.childNodes];
wrapper.append(...childNodes.slice(childNodes.indexOf(block) + 1));
parent.append(wrapper);
for (; block.nextSibling; wrapper.appendChild(block.nextSibling)) ;
block.after(wrapper);
1) С точки стандартов программирования, насколько правильно указывать у каждого класса namespace?да, это правильно. Один файл, один класс, который должен лежать в определенном пространстве имен.
2) Какой подход для использования spl_autoload_register из двух перечисленных является более правильным?Второй. Ибо это стандарт. "Вызывать несколько раз, в качестве аргумента указав функции, подключающие классы из разных директорий" - это когда у тебя мешанина из кода и ты пытаешься всё это натянуть на современные реалии.
php ../composer.phar init
{
.....
"autoload": {
"psr-4": {
"App\\": ["app/"]
}
}
}
php ../composer.phar dump-autoload
require('./vendor/autoload.php');
в файл индекса или в те файлы, где нужны классы с автоподгрузкой.#include <iostream>
using namespace std;
int Foo(int a, int b)
{
int sum;
sum = a + b; //2) Складываем полученные значния
return sum; //3) Возвращаем результат сложения в функцию Foo
}
int Foo2(int a)
{
cout << " output "<< a << endl;
}
int main()
{
int a, b; //1) Получаем 2 значения от пользователя
cin >> a >> b;
int c = Foo(a,b); //4) Передаем значения в Foo для сложения
Foo2(c); //5) С помощью Foo2 выводим результат в консоль
}
public void WritingToTextFile()
{
using (StreamWriter sw = new StreamWriter("Text.txt", false, System.Text.Encoding.Default))
{
sw.WriteLine(text);
sw.Close();
}
}
наFile.WriteAllText("Text.txt", text)
public List<string> ReadingFromTextFile()
{
List<string> temp = new List<string>();
using (StreamReader sr = new StreamReader("Text.txt"))
{
temp.Add(sr.ReadToEnd());
}
return temp;
}
а тут надо подумать! наFile.ReadAllText("Text.txt")
если одной строкой, илиFile.ReadAllLines("Text.txt")
если нужен массив строк#elem
нового контента следует полностью перезаписывать его содержимое:document.querySelector('#elem').innerHTML = `
<table>${Array.from({ length: 2 }, (_, iRow) => `
<tr>${Array.from({ length: columns }, (_, iCol) => `
<td>${iRow + 1}.${iCol + 1}</td>`).join('')}
</tr>`).join('')}
</table>
`;
const table = document.createElement('table');
table.insertRow();
table.insertRow();
document.querySelector('#elem').append(table);
for (const n of table.rows) {
while (n.cells.length < columns) {
n.insertCell().textContent = `${-~n.rowIndex}.${n.cells.length}`;
}
while (n.cells.length > columns) {
n.lastElementChild.remove();
}
}
const result = [...str].reduce((acc, n) => (acc[n] = (acc[n] ?? 0) + 1, acc), {});
function count(data, key = n => n) {
const counted = {};
for (const n of data) {
const k = key(n);
counted[k] = -~counted[k];
}
return counted;
}
const result = count(str);
const nums = [ -Infinity, -1, 0, 0, 0, 0, 69, 187, 666 ];
console.log(count(nums, Math.sign)); // {0: 4, 1: 3, -1: 2}
<div data-country="USA">New York</div>
<div data-country="USA">Boston</div>
<div data-country="USA">Las Vegas</div>
<div data-country="Japan">Osaka</div>
<div data-country="Japan">Tokyo</div>
<div data-country="Japan">Kyoto</div>
<div data-country="Japan">Yokohama</div>
<div data-country="Germany">Munich</div>
<div data-country="Germany">Dresden</div>
const cities = document.querySelectorAll('[data-country]');
console.log(count(cities, n => n.dataset.country)); // {USA: 3, Japan: 4, Germany: 2}
count(Array(9).keys(), n => [ 'чётные', 'нечётные' ][n & 1]) // {чётные: 5, нечётные: 4}
document.querySelector('table').addEventListener('input', e => {
const tr = e.target.closest('tr');
const price = parseInt(tr.querySelector('.price').innerText);
const value = e.target.value;
tr.querySelector('.item_result').innerText = value * price;
});