Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中检查对象属性_Javascript - Fatal编程技术网

如何在javascript中检查对象属性

如何在javascript中检查对象属性,javascript,Javascript,我有一个如下的数组 var colorArray = ["#a", "#b", "#c", "#d", "#e"]; 根据这个,我将生成一个像这样的地图 function initilizeColorMap(){ for(var i = 0 ;i <colorArray.length ;i++){ colorTrackingMap[i] = {value: colorArray [i],state:"unused"}; } } 函数initilizeCo

我有一个如下的数组

  var colorArray = ["#a", "#b", "#c", "#d", "#e"];
根据这个,我将生成一个像这样的地图

  function initilizeColorMap(){
    for(var i = 0 ;i <colorArray.length ;i++){
    colorTrackingMap[i] = {value: colorArray [i],state:"unused"};
   }
 }
函数initilizeColorMap(){

对于(var i=0;i,如果您需要根据给定索引使用颜色,则无需迭代,请使用以下代码:

var currentIndex = 0;
function Next() {
    var tracking = colorTrackingMap[currentIndex];
    alert("color: " + tracking.value + ", state: " + tracking.state);
    currentIndex++;
    if (currentIndex >= colorTrackingMap.length)
        currentIndex = 0;
}

如果要在数组中搜索具有特定值的项,请使用普通循环:

function Find() {
    var color = document.getElementById("color").value;
    var state = "";
    for (var i = 0; i < colorTrackingMap.length; i++) {
        if (colorTrackingMap[i].value.toLowerCase() === color) {
            state = colorTrackingMap[i].state;
            break;
        }
    }

    if (state.length == 0) {
        alert("color isn't mapped");
    } else {
        alert("state: " + state);
    }
}
函数Find(){
var color=document.getElementById(“color”).value;
var state=“”;
对于(var i=0;i
您还可以将颜色作为函数参数传递,这只是为了示例


.

您可以有一个返回下一种颜色的方法。请查看此JSFIDLE:

var colorArray=[“a”、“b”、“c”、“d”、“e”];
var colortrackingpap=[];
var currentIndex=-1;
对于(var i=0;i colorTrackingMap.length)
currentIndex=0;
其他的
currentIndex++;
while(colorTrackingMap[currentIndex]!==未定义&&
colorTrackingMap[currentIndex]。状态!=“未使用”){
currentIndex++;
}
if(colorTrackingMap[currentIndex])
返回colorTrackingMap[currentIndex]。值;
其他的
返回“没有可用颜色”;
}

您可以使用以下内容:

var ColourMap = function (arr) {
    var _map = [],
        out = [],
        i,
        len;
    // Set up the colour map straight away
    for (i = 0, len = arr.length; i < len; i++) {
        _map.push({
            value: arr[i],
            state: "unused"
        });
    }

    return {
        get_next: function () {
            var i,
                len,
                next;
            for (i = 0, len = _map.length; i < len; i++) {
                if (_map[i].state === "unused") {
                    next = _map[i];
                    break;
                }
            }
            return next;
        }
    }
};

这是一个。

我不确定您想要完成什么。您正在向
colorTrackingMap
的每个元素添加
colorArray[0]
(相同的第一种颜色)。
var ColourMap = function (arr) {
    var _map = [],
        out = [],
        i,
        len;
    // Set up the colour map straight away
    for (i = 0, len = arr.length; i < len; i++) {
        _map.push({
            value: arr[i],
            state: "unused"
        });
    }

    return {
        get_next: function () {
            var i,
                len,
                next;
            for (i = 0, len = _map.length; i < len; i++) {
                if (_map[i].state === "unused") {
                    next = _map[i];
                    break;
                }
            }
            return next;
        }
    }
};
var m = new ColourMap(["#a", "#b", "#c", "#d", "#e"]);
m.get_next(); // get the next available element