Как убрать последнюю запятую?

Все внутри {{ ... }} - это похожее на Python выражение. Вам не нужно использовать другой {{ ... }} внутри, чтобы ссылаться на переменные.

Отбросить дополнительные скобки:

<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>

(Обратите внимание, что функция url_for() принимает конечную точку name , а не URL-путь, по умолчанию имя имени функции moremagic в вашем примере).

29
задан Tiny Giant 27 January 2016 в 22:25
поделиться

7 ответов

Использовать Array.join

var s = "";
n.each(function() {
    s += $(this).val() + ",";
});

становится:

var a = [];
n.each(function() {
    a.push($(this).val());
});
var s = a.join(', ');
91
ответ дан 27 November 2019 в 21:22
поделиться
s = s.substring(0, s.length - 1);
27
ответ дан 27 November 2019 в 21:22
поделиться

Можно использовать метод String.prototype.slice с отрицательным аргументом endSlice:

n = n.slice(0, -1); // last char removed, "abc".slice(0, -1) == "ab"

Или можно использовать метод $.map для построения строки, разделенной запятыми:

var s = n.map(function(){
  return $(this).val();
}).get().join();

alert(s);
13
ответ дан 27 November 2019 в 21:22
поделиться

См. R-FAQ :

Два проекта используют PHP для предоставления веб-интерфейса R. R _ PHP _ Online Стива Чена (хотя неясно, активен ли этот проект) в некоторой степени сходен с вышеупомянутыми Rcgi и Rweb. R-php активно разрабатывается Альфредо Понтильо и Анджело Минео и обеспечивает как веб-интерфейс для R, так и набор предварительно определенных анализов, которые не требуют ввода R-кода.

и эта статья: Использование R через PHP в учебных целях: R-php

-121--2789799-

Вы можете удалить «недопустимый» WeakReference внутри TryGetValue :

[Правка] Эта ошибка заключается в том, что эти решения фактически делают только то, что вы предлагаете, поскольку метод Put в любом случае заменяет старый объект новым. Просто проигнорируйте это.

public bool TryGetValue(TKey key, out TValue value) {
    WeakReference weakRef;
    if (!this.items.TryGetValue(key, out weakRef)) {
        value = null;
        return false;
    } else {
        value = (TValue)weakRef.Target;
        if (value == null)
            this.items.Remove(key);
        return (value != null);
    }
}

Или вы можете немедленно создать новый экземпляр в словаре, когда это необходимо:

public TValue GetOrCreate(TKey key, Func<Tkey, TValue> ctor) {

    WeakReference weakRef;
    if (!this.items.TryGetValue(key, out weakRef) {
        Tvalue result = ctor(key);
        this.Put(key, result);
        return result;
    } 

    value = (TValue)weakRef.Target;
    if (value == null)
    {
        Tvalue result = ctor(key);
        this.Put(key, result);
        return result;
    }

    return value;
}

Вы будете использовать его следующим образом:

static Foo CreateFoo(int id)
{
    return cache.GetOrCreate(id, id => new Foo(id));
}

[Edit]

В соответствии с windbg, один экземпляр WeakReference занимает 16 байт. Для 100 000 собранных объектов это не было бы таким серьезным бременем, поэтому можно было бы легко дать им жить.

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

-121--2341756-

Ответ Сэма является лучшим на данный момент, но я думаю, что карта была бы лучшим выбором, чем каждая в этом случае. Вы преобразуете список элементов в список их значений, и именно для этого и разработана карта .

var list = $("td.title_listing input:checked")
    .map(function() { return $(this).val(); })
    .get().join(', ');

Edit: Whoops, я пропустил, что CMS избил меня до использования карты , он просто спрятал его под slice предложение, которое я пропустил.

1
ответ дан 27 November 2019 в 21:22
поделиться

Использование «нормального» JavaScript:

var truncated = s.substring(0, s.length - 1);
3
ответ дан 27 November 2019 в 21:22
поделиться

Более примитивный способ - это изменить Каждый петля в для петли

for(var x = 0; x < n.length; x++ ) {
  if(x < n.length - 1)
    s += $(n[x]).val() + ",";
  else
    s += $(n[x]).val();
}
2
ответ дан 27 November 2019 в 21:22
поделиться

Вместо того, чтобы удалить его, вы можете просто пропустить добавление его в первую очередь:

var s = '';
n.each(function() {
   s += (s.length > 0 ? ',' : '') + $(this).val();
});
6
ответ дан 27 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

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