Javascript.RU

PHP-функция: range

Пермалинк: http://javascript.ru/php/range

Javascript:

function range ( low, high, step ) {	// Create an array containing a range of elements
	// 
	// +   original by: _argos

	var matrix = [];
	var inival, endval, plus;
	var walker = step || 1;
	var chars  = false;

	if ( !isNaN ( low ) && !isNaN ( high ) ) {
		inival = low;
		endval = high;
	} else if ( isNaN ( low ) && isNaN ( high ) ) {
		chars = true;
		inival = low.charCodeAt ( 0 );
		endval = high.charCodeAt ( 0 );
	} else {
		inival = ( isNaN ( low ) ? 0 : low );
		endval = ( isNaN ( high ) ? 0 : high );
	}

	plus = ( ( inival > endval ) ? false : true );
	if ( plus ) {
		while ( inival <= endval ) {
			matrix.push ( ( ( chars ) ? String.fromCharCode ( inival ) : inival ) );
			inival += walker;
		}
	} else {
		while ( inival >= endval ) {
			matrix.push ( ( ( chars ) ? String.fromCharCode ( inival ) : inival ) );
			inival -= walker;
		}
	}

	return matrix;
}

Примеры:

range ( 0, 12 );
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

range( 0, 100, 10 );
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

range( 'a', 'i' );
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

range( 'c', 'a' );
['c', 'b', 'a']


Автор: Гость (не зарегистрирован), дата: 16 марта, 2012 - 14:30
#permalink
Array.range= function(a, b, step){
    var A= [];
    if(typeof a== 'number'){
        A[0]= a;
        step= step || 1;
        while(a+step<= b){
            A[A.length]= a+= step;
        }
    }
    else{
        var s= 'abcdefghijklmnopqrstuvwxyz';
        if(a=== a.toUpperCase()){
            b=b.toUpperCase();
            s= s.toUpperCase();
        }
        s= s.substring(s.indexOf(a), s.indexOf(b)+ 1);
        A= s.split('');        
    }
    return A;
}


    Array.range(0,10);
    // [0,1,2,3,4,5,6,7,8,9,10]

    Array.range(-100,100,20);
    // [-100,-80,-60,-40,-20,0,20,40,60,80,100]

    Array.range('A','F');
    // ['A','B','C','D','E','F')

    Array.range('m','r');
    // ['m','n','o','p','q','r']

Автор: proffesor.goodwin, дата: 24 июля, 2012 - 15:58
#permalink

Ваша функция работает неверно. Попробуйте

Array.range('m','R');

Автор: музыкальный магазин (не зарегистрирован), дата: 9 сентября, 2015 - 01:30
#permalink

Очень полезная статья


Автор: Гость (не зарегистрирован), дата: 16 августа, 2016 - 05:19
#permalink

на CoffeeScript для чисел будет так:

range = (a, b, step = 1)->
    x for x in [a..b] by step

Автор: Гость (не зарегистрирован), дата: 16 августа, 2016 - 05:26
#permalink

опечатка, извиняюсь.

range = (a, b, step = 1)->
    (x for x in [a..b] by step)

Автор: Гость (не зарегистрирован), дата: 15 апреля, 2019 - 09:03
#permalink

шо це таке


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 00:25
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 13:23
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 3 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum