alex-lit
7/18/2017 - 8:18 AM

Фильтры для vue.js #vue #filter

Фильтры для vue.js #vue #filter

/**
 * Разделитель тысяч в ценах
 *
 * @param {number|string} value - Значение
 * @returns строка с разделением на тысячные доли | пример: '7 550 000'
 */
thousandSeparator(value) {
  return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ')
}

describe('thousandSeparator', () => {
  it('1000 -> 1 000', () => {
    expect(PostLimiter.methods.thousandSeparator(1000)).toBe('1 000');
  });

  it("'123456789' -> 123 456 789", () => {
    expect(PostLimiter.methods.thousandSeparator('123456789')).toBe(
      '123 456 789'
    );
  });

  it('350 -> 350', () => {
    expect(PostLimiter.methods.thousandSeparator(350)).toBe('350');
  });

  it('Hello -> Hello', () => {
    expect(PostLimiter.methods.thousandSeparator('Hello')).toBe('');
  });

  it('Try66666ololo1 -> 666 661', () => {
    expect(PostLimiter.methods.thousandSeparator('Try66666ololo1')).toBe(
      '666 661'
    );
  });
});
/**
 * Обрезка текста
 * @param {String} value - входная строка текста
 * @param {Number} symbolsCount - кол-во символов которое нужно оставить
 */
cutText(value, symbolsCount) {
  return value.length > symbolsCount
    ? value.slice(0, symbolsCount - 3) + '...'
    : value;
}
/**
 * Cлучайный элемент массива
 *
 * @param {Array} value входной массив | пример: ['a','b','c']
 * @returns случайный элемент массива | пример: 'b'
 */ 
random(value) {
    return value[
        Math.floor(Math.random() * value.length)
    ];
}
// получение инициалов
getInitials(value) {
    return value
        .split(' ')
        .map(name => {
            return name.charAt(0);
        })
        .join('');
}