Как отладить в Firebug, когда код находится в отдельном файле JS?

Я бы написал так:

private Dictionary<string, string> ParsePathParameters(string path)
{
    return GetSegmentPairs().ToDictionary(x => x.k, x => x.v);
    IEnumerable<(string k, string v)> GetSegmentPairs()
    {
        var segments = path?.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries)
                ?? new string[0];
        for (int i = 0, l = segments.Length; i < l; i += 2)
            yield return (segments[i+0], segments[i+1]);
    }
}

Не стоит недооценивать силу локальных функций и генераторов. Генераторы хороши, когда вам нужно создавать последовательности, которые неудобно писать как прямой запрос linq. Затем эти генераторы могут быть использованы в запросах linq. В этом конкретном случае это может даже не потребоваться для довольно тривиального запроса, но для более сложных запросов это неоценимо. Но это шаблон, который вы должны научиться использовать чаще.

Если бы я использовал C # 8, я бы привык использовать span / memory и слайсы, где это уместно.

private Dictionary<string, string> ParsePathParameters(string path)
{
    return GetSegments().ToDictionary(x => x.Span[0], x => x.Span[1]);
    IEnumerable<System.Memory<string>> GetSegments()
    {
        var segments = path?.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries) ?? new string[0];
        for (int i = 0, l = segments.Length; i < l; i += 2)
            yield return segments[^i..i+1];
    }
}

В противном случае, если вы используете MoreLINQ, вы можете использовать методы Pairwise() и TakeEvery(), чтобы эффективно сделать то же самое, что и метод GetSegmentPairs() выше.

private Dictionary<string, string> ParsePathParameters(string path) =>
    (path?.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries)
            ?? Enumerable.Empty<string>())
        .Pairwise(ValueTuple.Create)
        .TakeEvery(2) // pairwise produces overlapping pairs so take every other
        .ToDictionary(x => x[0], x => x[1]);
8
задан Parth 4 November 2014 в 18:58
поделиться

4 ответа

Если вы перейдете на вкладку сценариев, появится небольшое выпадающее окно, в котором вы сможете выбрать любые сценарии, связанные с этой страницей. Хотя, они не сильно вам помогут, если они минифицированы ...

6
ответ дан 5 December 2019 в 11:27
поделиться

Открыть Firebug. Нажмите «Сценарий», затем выберите свой внешний JS-файл из выпадающего меню.

4
ответ дан 5 December 2019 в 11:27
поделиться

Вы можете добавить «отладчик»; строка перед строкой, которую вы хотите отладить.

Это вызовет отладчик JS Firebug.

3
ответ дан 5 December 2019 в 11:27
поделиться

In the new firebug you need to click on the file list to get access to external js files. It is no longer in the "Script Tab". Once you've changed to the js file you want to set the breakpoint in you just need to click the line number on the left and reload the page.

alt text http://rival-studios.com/Portals/0/so-firebug.gif

2
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: