123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- // 1. Напишите функцию, которая возвращает массив, очищенный от пустых значений, не меняя исходный
- // var data = [0, '0', '', null, {}, [], [1, 2, 3]];
- // console.log( clean(data) ); // [0, '0', null, [1, 2, 3]]
- function clean(arr) {
- var newArray = [];
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] != '' && arr[i] != {} && arr[i] != [] ) {
- newArray.push(arr[i]);
- }
- }
- return newArray;
- }
- var data = [0, '0', '', null, {}, [], [1, 2, 3]];
- console.log( clean(data) );
- // 2. Напишите функцию-аналог splice, не используя никакие методы массива.
- // var arr = [1, 2, 4, 3];
- // console.log(splice(arr, 2, 1)); // [4]
- // console.log(arr); // [1, 2, 3]
- // splice(arr, 2, 0, 100, 200, 300);
- // console.log(arr); // [1, 2, 100, 200, 300, 3]
- function splice(arr, start, del) {
- var result = [];
-
- start = (start < 0) ? arr.length + start : start;
-
- for (var i = 0; i < start; i++) {
- result[i] = arr[i];
- }
-
- if (arguments.length > 3) {
-
- for (var i = 3; i < arguments.length; i++) {
- result[result.length] = arguments[i];
- }
- }
-
- for (var i = start + del; i < arr.length; i++) {
- result[result.length] = arr[i];
- }
- return result;
- }
- var arr = [1, 2, 4, 3];
- console.log(splice(arr, 2, 1));
- console.log(arr);
- splice(arr, 2, 0, 100, 200, 300);
- console.log(arr);
- // 3. Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов, число которых
- // не ограничено. Функция работает только с числами (включая строковые). Если какой-то из параметров -
- // массив, то к сумме добавляется также сумма значений этого массива (если какое-либо из значений этого
- // массива также является массивом, то к результату добавляется также и сумма его значений, и так далее).
- // var sum = getSum(1, '1', 'one', [2, '2', 'two']);
- // console.log( sum ); // 6
- function getSum() {
- var arr = [].slice.apply(arguments);
- function sumRecursion(arr) {
- return arr.reduce(function (sum, elem) {
- if ( isNumber(elem) ) sum += +elem;
- else if ( Array.isArray(elem) ) sum += sumRecursion(elem);
- return sum;
- }, 0);
- }
- return sumRecursion(arr);
- }
- function isNumber(val) {
- return !isNaN(parseFloat(val)) && isFinite(val);
- }
- var sum = getSum(1, '1', 'one', [2, '2', 'two']);
- console.log( sum );
- // 4. Напишите функцию, которая рисует в указанном HTML-контейнере диаграмму из данных, представляющих из
- // себя массив объектов: каждый объект имеет свойства color и value, означающих соответственно цвет столбца
- // и его высоту.
- // var data1 = [ {color: '#DE9797', value: 70}, ... ];
- // buildDiagram(data1, '#diagram1');
- // var data2 = [ {color: '#97DEDA', value: 20}, ... ];
- // buildDiagram(data2, '#diagram2');
- function buildDiagram(arr, target) {
- var array = arr;
- for (var i = 0; i < arr.length; i++) {
- var colum = ('<div>').css(
- hight : arr[i].value
- color : arr[i].color
- )
- }
- }
- var data1 = [ {color: '#DE9797', value: 70}, {color: 'red', value: 50}, {color: 'pink', value: 30}];
- buildDiagram(data1, '#diagram1');
- // 5.Напишите функцию, которая изображает в теге HTML картинку по данным, представляющим из себя двумерный массив закрашенных точек.
- // var points = [
- // [3, 4, 5],
- // [2, 3, 9, 16],
- // [1, 2, 9, 10, 15, 16],
- // ...
- // ];
- $(document).ready(function(){
- $("td").css({
- "width": "10px",
- "height": "10px",
- "border": "0.1px solid #999"
- });
- $("table").css({
- "border-spacing": "0px"
- });
- var points = [
- [3,4,5],
- [2,3,9,16],
- [1,2,9,10,15,16],
- [1,2,5,6,9,10,11,12,13,14,15,16],
- [1,2,4,5,6,7,9,12,13,16],
- [1,2,3,4,5,6,7,8,9,12,13,16],
- [2,3,4,5,6,7,8,9,10,11,14,15,16],
- [2,3,4,5,6,7,8,10,11,12,13,14,15],
- [2,3,4,7,8,12,13],
- [2,3,7,8],
- [2,3,4,5,7,8,9],
- [2,3,4,5,7,8,9]
-
- ];
- function kub(arr) {
- for (var i =0; i < arr.length; i++) {
- arr[i].forEach(function(item){
-
- $("tr:nth-child("+ +(i+1)+") > td:nth-child("+item+")").css({
- "background": "black"
- });
- });
- }
-
- }
- kub(points);
- })
|