Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Получить ключ минимального знаения массива (https://javascript.ru/forum/css-html/56239-poluchit-klyuch-minimalnogo-znaeniya-massiva.html)

olejan 06.06.2015 11:55

Получить ключ минимального знаения массива
 
есть массив [1: 3, 2: 2, 3: 4, 4: 1]

Как получить ключ минимального значения?

рони 06.06.2015 12:34

olejan,
у вас пока не массив и не обьект

Endy 06.06.2015 15:18

Я думаю имелось ввиду объект.
var obj = {1: 3, 2: 2, 3: 4, 4: 1};
var objectValues = Object.keys(obj).map(function(e){
    return obj[e];
});
var min = Math.min.apply(null,objectValues);
var key;
for (key in obj) {
    if (obj[key] !== min) continue;
    alert(key);
}

рони 06.06.2015 15:19

olejan, если у вас обьект
var obj = {
    1: 3,
    2: 2,
    3: 4,
    4: 1
};
alert(Object.keys(obj).sort(function(a, b) {
    return obj[a] - obj[b]
})[0]);

pornoborets 07.06.2015 14:30

Цитата:

Сообщение от рони
если у вас обьект

Какая разница, это и для массива сработает
var obj = [3,2,4,1]

alert(Object.keys(obj).sort(function(a, b) {
    return obj[a] - obj[b]
})[0]);


//>>>> 3

рони 07.06.2015 15:10

pornoborets,
для массива лучше цикл по существующим индексам forEach

pornoborets 07.06.2015 15:44

Цитата:

Сообщение от рони
цикл по существующим индексам forEach

тогда уж for

рони 07.06.2015 16:32

Цитата:

Сообщение от pornoborets
тогда уж for

зачем проверять то чего нет?

pornoborets 07.06.2015 18:18

Цитата:

Сообщение от рони (Сообщение 374194)
зачем проверять то чего нет?

Чего нет? Индексов массива? Я отвлекся, потерял нить, уже. Забыл о чем вообще речь идет:) Я, собственно, к тому, что об оптимизации стоит вспоминать только тогда, когда есть узкие места.

рони 07.06.2015 18:21

Цитата:

Сообщение от pornoborets
Чего нет? Индексов массива?

да нет индексов -- в данном случае нет индекса ноль


Часовой пояс GMT +3, время: 03:29.