Получите элемент в указанном положении - JavaScript

Вы задали два вопроса, которые не совсем эквивалентны:

  • Во-первых, как определить, имеет ли массив только числовые ключи
  • , Во-вторых, как определить, имеет ли массив последовательный , числовые ключи, запускающиеся от 0

, Рассматривают, в каком из этих поведений Вы на самом деле нуждаетесь. (Может случиться так, что любой сделает в Ваших целях.)

первый вопрос (просто проверяющий, что все ключи являются числовыми) отвечен хорошо капитаном kurO .

Для второго вопроса (проверяющий, индексируется ли массив нулем и последователен), можно использовать следующую функцию:

function isAssoc(array $arr)
{
    if (array() === $arr) return false;
    return array_keys($arr) !== range(0, count($arr) - 1);
}

var_dump(isAssoc(array('a', 'b', 'c'))); // false
var_dump(isAssoc(array("0" => 'a', "1" => 'b', "2" => 'c'))); // false
var_dump(isAssoc(array("1" => 'a', "0" => 'b', "2" => 'c'))); // true
var_dump(isAssoc(array("a" => 'a', "b" => 'b', "c" => 'c'))); // true

127
задан kjv 11 August 2009 в 10:41
поделиться