2015-11-30 3 views
-1

У меня есть var colors = ["green", "blue", "red", "yellow" ]. Я хочу проверить, есть ли «красный», а затем вернуть только тот конкретный элемент из этого массива. Но мой код возвращает все элементы массива.Как выбрать только определенное значение в массиве?

for (var i = 0; i < colors.length; i++){ 
    if ((colors[i])=== "red") { 
    return colors[i]; 
    } 
} 
+2

'return colors.indexOf ('red')> -1? 'red': undefined; ' – Tushar

+2

Он выглядит хорошо. Он должен вернуть элемент. –

+0

Спасибо. Я действительно получаю незаконное заявление о возврате. – Ann

ответ

0

Ничего не случилось с вашим кодом ..

function getColor(color) 
{ 
    colors = ["green", "blue", "red", "yellow" ] 

    for (var i = 0; i < colors.length; i++){ 
     if ((colors[i])=== color) { 
     return colors[i]; 
    } 
    } 
} 

getColor('red'); // returns 'red'; 
+0

Или, может быть, я неправильно понял ваш вопрос? – choz

0
colors = ["green", "blue", "red", "yellow" ] 

function getColor(c){ 
    return colors.indexOf(c)> -1? colors[colors.indexOf(c)]: undefined; 
} 
document.write(getColor('red')); 
0

Это прекрасно работает для меня:

for (var i = 0; i < colors.length; i++){ 
    if (colors[i] == "red") { 
     return colors[i]; 
    } 
} 
0

Попробуйте FIDDLE, FIDDLE предупреждает выбранный элемент

Вы должны обернуть f или цикл внутри функции, возвращающей значение.

Пример:

$(function() { 
    var colors = ["green", "blue", "red", "yellow"]; 

    function GetItem() { 
     for (var i = 0; i < colors.length; i++) { 
      if ((colors[i]) === "red") { 
       return colors[i]; 
      } 
     } 
    } 

    alert(GetItem()); 
}); 

Надеется, что это работает для вас

0

Если не внутри функции. прервите цикл, когда условие выполнено.

0

Для начала вам необходимо сломать и назначить или сохранить ключ.

var key; 
for (var i = 0; i < colors.length; i++){ 
    if ((colors[i])=== "red") { 
     key = i; 
     break; 
    } 
} 
color = colors[key]; 

Но вместо этого вы можете использовать indexOf.

if (colors.indexOf('red') !== -1) { 
    var key = colors.indexOf('red'); 
    var color = colors[key]; 
} 
Смежные вопросы