如何在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