Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // На входе массив
- var arr = [
- {name: 'width', value: 10},
- {name: 'height', value: 20}
- ];
- // На выходе объект {width: 10, height: 20}
- const obj = arr.reduce((acc, {name, value}) => acc[name] = value,{})
- ------------------
- // Что будет в консоли?
- var i = 10;
- var array = [];
- while (i--) {
- array.push(function() {
- return i + i;
- });
- }
- console.log([
- array[0](),
- array[1](),
- ])
- // [10, 9] || [10,10]
- // [-2, -2]
- // i-- ; --i
- ------------------------
- var b = {};
- var c;
- b.b = 1;
- c = b;
- c.b = 2;
- console.log('1)', b.b); // 2
- console.log('2)', c.b); // 2
- var a = { counter: 1 };
- function inc(obj) {
- obj.counter++;
- obj.changed = true;
- }
- inc(a);
- console.log('3)', a); // {count:2, changed: true}
- var d = 'test';
- d.d = 1;
- console.log('4)', d.d); // error
- Object.is(obj1,obj2)
- const strObj1 = JSON.stringify(obj1)
- const strObj2 = JSON.stringify(obj2)
- a.name === b.name
- let a = {id: 1, value: 'text'};
- let b = {id: 2, value: 'text'};
- -----------------------------------
- /**
- * Есть функция и объект. Необходимо, чтобы функция в консоли вывела значение 'yandex'.
- * Как добиться желаемого не изменяя тело функции?
- */
- function f() { console.log(this.x); }
- var obj = {x: 'yandex'};
- f.bind(f,obj)
- f.call
- f.apply
- --------------------------
- /**
- * Дана строка, состоящая из букв A-Z:
- * "AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB"
- * Нужно написать функцию RLE, которая на выходе даст строку вида:
- * "A4B3C2XYZD4E3F3A6B28"
- * И сгенерирует любую ошибку, если на вход пришла невалидная строка.
- *
- * Пояснение:
- * 1. если символ встречается 1 раз, он остается без изменений
- * 2. если символ повторяется более 1 раза, к нему добавляется количество повторений
- */
- function rle(str) {
- if(str.length === 0 || !str.match(/^[A-Z]+$/)) {
- throw new Error(`${str} invalid`)
- }
- let curr = str[0]
- let count = 0
- return str.split("").reduce((acc,item, index, arr) => {
- if(curr === item) {
- count++
- if(index === arr.length - 1) {
- acc += curr + count
- }
- } else {
- acc += curr + (count === 1 ? "" : count)
- curr = item
- count = 1
- }
- }
- return acc
- , '')
- }
- ----------------------------
- <div style="float: left; border: 1px solid red;">
- <span style="position: relative; top: -1000px; left: -1000px; border: 1px solid green;">
- Inner text
- </span>
- </div>
- ------------------------------
- <div id="root" style="background: red;">
- root
- <span id="id1" style="background: lightblue;">id1</span>
- <div id="id2" style="background: green;">
- id2
- <div id="id3" style="background: yellow;">id3</div>
- </div>
- </div>
- let el = document.getElementById('root')
- let arr = el.children()
- function showID(e) {
- e.stopPropagination()
- return function(id) {
- console.log('id', id)
- }
- }
- arr.forEach(item => item.addEventListener('onclick', showID(item.id)))
- e.currentTarget
Add Comment
Please, Sign In to add comment