JS比较变量到多级对象
JS comparing variables to multi level object
像这样的对象正在向我走来:
var data = {
a0: {
name: 'long name 0',
var1_min: '10',
var1_max: '99',
select: ['alpha', 'gamma'],
display: 'value0'
},
b12: {
name: 'long name 1',
var1_min: '1',
var1_max: '999',
select: ['beta'],
display: 'value1'
},
d7: {
name: 'long name 2',
var1_min: '1000',
var1_max: '0',
select: ['alpha', 'beta', 'gamma'],
display: 'value2'
}
}
我想将一些变量与var1_min, var1_max, select
进行比较,如果一个变量在var1_min, var1_max
之间,第二个变量在select
中,则保存name, display
。
我做了这个测试:
<div style="text-align:center;" id="df">
<div class="main">
<form id="form" action="#">
<fieldset>
<label for="field1">field1
<input type="text" name="field1" id="field1" />
</label>
<label for="field2">field2
<select name="field2" id="field2">
<option value="alpha">alpha</option>
<option value="beta">beta</option>
<option value="gamma">gamma</option>
</select>
</label>
</fieldset>
<br />
<button type="submit">submit</button>
</form>
<span id="span"></span>
</div>
</div>
$('#form').submit(function () {
$('#span').empty();
var field1 = $('#field1').val();
var field2 = $('#field2').val();
for (var x in data) {
if (data.hasOwnProperty(x)) {
$('#span').append(x + '<br />');
for (var y in data[x]) {
if (data[x].hasOwnProperty(y)) {
$('#span').append(y + " => " + data[x][y] + '<br />');
}
}
}
if (field1 >= data[x].var1_min) {
$('#span').append('true' + '<br />');
}
}
return false;
});
if (field1 >= data[x].var1_min)
总是返回true,即使field1
中的值更小。
请把你的眼睛借给我。
对象包含var1_min
的字符串,val()
也返回字符串。要按预期比较它们,请将它们解析为浮点数(或整数):
if (parseFloat(field1) >= parseFloat(data[x].var1_min));
查看更新后的jsFiddle
相关文章:
- 使用PHP,我如何将JSON blob附加到现有的多级JSON对象
- 通过服务与多级对象交互
- 设置javascript对象多级属性的简单方法
- JSON多级对象
- 在多级json对象中使用变量作为键
- 在具有多级对象的 JavaScript 中发布请求
- 如何使用 JsonPath 获取表达式上的多级对象
- [JS]更改多级对象值
- 使用来自 JSON 对象的数组表示法进行多级属性检索
- 多级对象 JavaScript
- 动态创建用于jQuery-jTable的多级Javascript对象
- 什么'在处理多级对象时,确保JavaScript对象已设置且未定义的最佳实践
- 如何检测多级对象是否具有未定义或null属性
- 使用字符串数组创建多级对象,将数组解析为JS对象
- JavaScript创建多级对象
- 转换多级对象值到字符串javascript
- JS比较变量到多级对象
- 从多级对象数组中重新赋值
- 多级对象到单级对象
- Angular2:将多级对象作为路由参数传递