如何循环遍历一个对象并测试它是否为唯一存在的键
how to loop through an object and test for if it's the only key present
我正在使用jQuery。serializeJSON (https://github.com/marioizquierdo/jquery.serializeJSON)。基本上,我有一个这样的表单:
<input name='store[products][][type]' type='text' value='TableSaw' />
<textarea name='store[products][][description]'></textarea>
<textarea name='store[products][][price]'></textarea>
序列化后看起来像:
{"store":{"products":[{"type":"TableSaw","description":"Really cool saw, should buy it ","price": "20.99"}]}}
用户可以修改/删除/描述、价格等属性。基本上,我要做的是测试type是否是唯一存在的键。
现在它看起来像:
{"store":{"products":[{"type":"TableSaw"}]}} //JUST TYPE IS SENT TO DB. NOT WHAT I WANT
但是我想要达到的是:
{"store":{"products":[]}} //WHAT I WANT TO SEND TO DB.
try this:
for (var i=0; i<store.products.length;i++) {
if (!isValid(store.products[i])) {
delete store.products[i];
}
}
function isValid(product) {
return (product.type && product.description && product.price);
}
当您将json定义分配给一个对象时,可以这样做
var data = {"store":{"products":[{"type":"TableSaw","description":"Really cool saw, should buy it ","price": "20.99"}]}};
所有你需要做的是测试description
和price
元素的类型,如果它们不存在,你使数组products
为空,像这样:
if( typeof(data.store.products[0].desctiption) == 'undefined' || typeof(data.store.products[0].price) == 'undefined')
data.store.products = [];
相关文章:
- 使用onkeyup JS事件检查输入的值是否唯一
- 检查字符串中的字符是否都是唯一的
- 为什么尽管查询查找记录,mysql 数据没有拉入表单,查找值是否需要是唯一的
- chase.com 登录流是否使用 JavaScript 中的设备唯一标识符
- Node.js with Geddy:geddy.string.uuid(x) 是否确保字符串是唯一的
- 如果元素是唯一的,使用 javascript 更改 ID 是否是一种可以的做法
- 是否解析对象ID'它在不同类别中是否唯一
- JavaScript检查数组中是否有唯一的东西
- Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复字符
- console.log是否是api's返回内容的唯一选项?
- 如何循环遍历一个对象并测试它是否为唯一存在的键
- 将具有唯一id的对象集合存储为以id作为键的关联数组,而不是作为常规数组,是否存在缺陷?
- WorkLight是否提供了唯一的id ?
- 是否有可能在不使用唯一对象属性的情况下区分两个对象?
- 是否有一种更简单的方法来使用lodash从多个对象集合中构造一个唯一值的数组?
- 检查电子邮件地址是否为系统唯一
- 在应用程序中使用唯一的方法名是否很好
- 是否可以将一个唯一的CSS类附加到多个<李>元素,或者使用Jquery对它们重新排序
- angularJS指令名是否唯一?
- 当所有字段都具有唯一id时,我如何知道复选框是否被选中