如何只选择数组中的特定值?

时间:2015-11-30 05:53:39

标签: javascript

我有var colors = ["green", "blue", "red", "yellow" ]。我想检查是否有" red",然后只返回该数组中的特定元素。但我的代码返回数组中的所有元素。

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

6 个答案:

答案 0 :(得分: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';

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

这对我来说很好用:

{{1}}

答案 3 :(得分:0)

尝试FIDDLE,FIDDLE警告所选项目

你必须将for循环包装在一个返回值的函数中。

示例:

$(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());
});

希望这适合你

答案 4 :(得分:0)

如果它不在函数内部。在条件满足时打破循环。

答案 5 :(得分: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];
}