Guest User

Untitled

a guest
Oct 15th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. // На входе массив
  2. var arr = [
  3. {name: 'width', value: 10},
  4. {name: 'height', value: 20}
  5. ];
  6. // На выходе объект {width: 10, height: 20}
  7.  
  8. const obj = arr.reduce((acc, {name, value}) => acc[name] = value,{})
  9.  
  10.  
  11. ------------------
  12.  
  13. // Что будет в консоли?
  14. var i = 10;
  15. var array = [];
  16.  
  17. while (i--) {
  18. array.push(function() {
  19. return i + i;
  20. });
  21. }
  22.  
  23. console.log([
  24. array[0](),
  25. array[1](),
  26. ])
  27.  
  28. // [10, 9] || [10,10]
  29.  
  30. // [-2, -2]
  31. // i-- ; --i
  32.  
  33.  
  34. ------------------------
  35.  
  36.  
  37.  
  38. var b = {};
  39. var c;
  40.  
  41. b.b = 1;
  42. c = b;
  43. c.b = 2;
  44.  
  45. console.log('1)', b.b); // 2
  46. console.log('2)', c.b); // 2
  47.  
  48. var a = { counter: 1 };
  49. function inc(obj) {
  50. obj.counter++;
  51. obj.changed = true;
  52. }
  53.  
  54. inc(a);
  55. console.log('3)', a); // {count:2, changed: true}
  56.  
  57. var d = 'test';
  58. d.d = 1;
  59. console.log('4)', d.d); // error
  60.  
  61.  
  62. Object.is(obj1,obj2)
  63.  
  64. const strObj1 = JSON.stringify(obj1)
  65. const strObj2 = JSON.stringify(obj2)
  66.  
  67. a.name === b.name
  68.  
  69. let a = {id: 1, value: 'text'};
  70. let b = {id: 2, value: 'text'};
  71.  
  72. -----------------------------------
  73. /**
  74. * Есть функция и объект. Необходимо, чтобы функция в консоли вывела значение 'yandex'.
  75. * Как добиться желаемого не изменяя тело функции?
  76. */
  77. function f() { console.log(this.x); }
  78. var obj = {x: 'yandex'};
  79.  
  80. f.bind(f,obj)
  81. f.call
  82. f.apply
  83.  
  84. --------------------------
  85.  
  86. /**
  87. * Дана строка, состоящая из букв A-Z:
  88. * "AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB"
  89. * Нужно написать функцию RLE, которая на выходе даст строку вида:
  90. * "A4B3C2XYZD4E3F3A6B28"
  91. * И сгенерирует любую ошибку, если на вход пришла невалидная строка.
  92. *
  93. * Пояснение:
  94. * 1. если символ встречается 1 раз, он остается без изменений
  95. * 2. если символ повторяется более 1 раза, к нему добавляется количество повторений
  96. */
  97. function rle(str) {
  98. if(str.length === 0 || !str.match(/^[A-Z]+$/)) {
  99. throw new Error(`${str} invalid`)
  100. }
  101.  
  102. let curr = str[0]
  103. let count = 0
  104.  
  105. return str.split("").reduce((acc,item, index, arr) => {
  106. if(curr === item) {
  107. count++
  108. if(index === arr.length - 1) {
  109. acc += curr + count
  110. }
  111. } else {
  112. acc += curr + (count === 1 ? "" : count)
  113. curr = item
  114. count = 1
  115. }
  116. }
  117. return acc
  118. , '')
  119. }
  120.  
  121.  
  122. ----------------------------
  123.  
  124.  
  125.  
  126. <div style="float: left; border: 1px solid red;">
  127. <span style="position: relative; top: -1000px; left: -1000px; border: 1px solid green;">
  128. Inner text
  129. </span>
  130. </div>
  131.  
  132. ------------------------------
  133.  
  134.  
  135.  
  136. <div id="root" style="background: red;">
  137. root
  138. <span id="id1" style="background: lightblue;">id1</span>
  139. <div id="id2" style="background: green;">
  140. id2
  141. <div id="id3" style="background: yellow;">id3</div>
  142. </div>
  143. </div>
  144.  
  145. let el = document.getElementById('root')
  146. let arr = el.children()
  147.  
  148. function showID(e) {
  149. e.stopPropagination()
  150. return function(id) {
  151. console.log('id', id)
  152. }
  153. }
  154.  
  155. arr.forEach(item => item.addEventListener('onclick', showID(item.id)))
  156.  
  157. e.currentTarget
Add Comment
Please, Sign In to add comment