• Как заполнить два массива разными значениями?

    private static Random random = new System.Random();
    
    public static void RandomFill(int[,] arr)
            {
                for (int i = 0; i < 5; ++i)
                {
                    for (int j = 0; j < 5; ++j)
                    {
                        arr[i, j] = random.Next(2);
                    }
                }
            }
    Ответ написан
    Комментировать
  • В чем отличие Angular и Angularjs?

    StivinKing
    @StivinKing
    Ссылка на habrahabr (ключевые различия)
    Изучать, естественно, Angular. Многие думают, что angular 2, 4 и уже вышла 5 версия - это разные фреймворки. Нет, есть только 2 разных - Angular и Angularjs. 2, 4, 5 - это просто мажорные версии Angular, в которых, по большей части, реализован ряд улучшений для производительности и введение нового интересного функционала. На личном опыте скажу, что скорость 2 мажорной версии от 5 отличается существенно
    Книгу видел, но сам лично не читал, поэтому рекомендовать не могу. Для базы в интернете много хороших уроков, в том числе видеоматериалов. Рекомендую конечно англоязычные уроки, но и среди русских тоже есть достойные, на мой взгляд. Из того, что сам в своё время давал своей команде - это уроки от CodeDojo (бесплатные) и ITVDN (платные)
    Ответ написан
    Комментировать
  • Как отменить старый коммит?

    Astrohas
    @Astrohas
    Python/Django Developer
    Сделать отдельный бренч, на нем отменить, и потом смерджит в основную под прделогом коммит 11. ТАк вы избавите себя и других от лишнего гемороя.
    Ответ написан
    Комментировать
  • RxJS - Как правильно делать отписки на Subscriber объект?

    loktionov129
    @loktionov129
    Backend .NET Developer
    Вовсе не обязательно все подписки складывать в массив и затем в цикле от них отписываться в ngOnDestroy.
    Можно обойтись таким способом:
    import { Component, OnDestroy, OnInit } from '@angular/core';
    import 'rxjs/add/operator/takeUntil';
    import { Subject } from 'rxjs/Subject';
    
    import { MyThingService } from '../my-thing.service';
    
    @Component({
        selector: 'my-thing',
        templateUrl: './my-thing.component.html'
    })
    export class MyThingComponent implements OnDestroy, OnInit {
        private ngUnsubscribe: Subject<void> = new Subject<void>();
    
        constructor(
            private myThingService: MyThingService,
        ) { }
    
        ngOnInit() {
            this.myThingService.getThings()
                .takeUntil(this.ngUnsubscribe)
                .subscribe(things => console.log(things));
    
            this.myThingService.getOtherThings()
                .takeUntil(this.ngUnsubscribe)
                .subscribe(things => console.log(things));
    
        }
    
        ngOnDestroy() {
            this.ngUnsubscribe.next();
            this.ngUnsubscribe.complete();
        }
    }
    Ответ написан
    1 комментарий
  • Как сгенерировать объект с заданными свойствами?

    loktionov129
    @loktionov129
    Backend .NET Developer
    const random = (min, max) => Math.floor(Math.random() * (max - min) + min),
    
    offerTitles = [
    	"Большая уютная квартира",
    	"Маленькая неуютная квартира",
    	"Огромный прекрасный дворец",
    	"Маленький ужасный дворец",
    	"Красивый гостевой домик",
    	"Некрасивый негостеприимный домик",
    	"Уютное бунгало далеко от моря",
    	"Неуютное бунгало по колено в воде"
    ],
    shuffledOfferTitles = [...offerTitles].sort(() => Math.random() > 0.5),
    types = ["flat", "house", "bungalo"],
    checks = ["12:00", "13:00", "14:00"],
    features = ["wifi", "dishwasher", "parking", "washer", "elevator", "conditioner"];
    
    const result = [...Array(8).keys()].map((id) => ({
    	author: {
    		avatar: `img/avatars/user0${id + 1}.png`
        },
    	offer: {
    		title: shuffledOfferTitles[id],
    		address: "location.x, location.y",
    		price: random(1000, 1000000),
    		type: types[random(0, types.length)],
    		rooms: random(1, 5),
    		guests: random(1, 9),
    		checkin: checks[random(0, checks.length)],
    		checkout: checks[random(0, checks.length)],
    		features: ((rnd) => features.slice(random(0, rnd), random(rnd, features.length)))(random(0, features.length -1)),
    		description: "",
    		photos: []
        },
    	location: {
    		x: random(300, 900),
    		y: random(100, 500)
        }
    }));

    5a1eb99b6e109939200749.png
    Ответ написан
    1 комментарий