[英]Which json library should I use to pass my array of objects (javascript) to the server (java) and vice versa?
[英]When should I use an object over an array and vice versa?
我通常使用数组来实现可能更适合使用对象的任务。 我决定在Stack Overflow上提出问题,而不是继续想知道将对象用于任务是否更好。
array = ["James", 17];
object = {name:"James", age:17};
它们在语法上看起来都差不多,对我来说,它们在使用时似乎达到了同样的效果。 我应该何时在数组上使用对象,反之亦然? 关于何时应该使用一个而不是另一个,是否有一般规则?
如果需要命名键(键:值对),请使用对象,否则使用数组。 您甚至可以对对象使用数组表示法:
object = {name:"James", age:17};
object['name']; // James
在您的情况下,您似乎将信息存储在有关某人的字段中。 在这里,使用对象非常有意义,因为密钥标识了您在每个字段中存储的数据类型。 数组用于简单的数据列表。
在您使用该数组的第一个示例中,您将在该数组中的两个索引之间建立关系。 这是不鼓励的,因为您的代码没有您想要将其中一个与另一个相关联的固有知识。 这是在第二行中使用对象的绝佳机会。
考虑同时使用它们的机会:
var match = {};
var peopleProps = {
hair: ['brown', 'blonde', 'red'],
eyes: ['brown', 'blue', 'green']
};
var person = {
name: 'James',
age: '17',
hair: 'brown',
eyes: 'blue'
};
for(var prop in person) {
for(var subProp in peopleProps) {
for(var i=0, l=peopleProps[subProp].length; i<l; i++) {
if(prop == subProp && person[prop] === peopleProps[subProp][i]) {
(match[prop][subProp])? match[prop][subProp]++ : match[prop][subProp] = 1;
}
}
}
}
在这里,我们可以看到使用数组创建映射术语和对象来关联它们的有用性。
重点是:抽象层次。 您需要按照“现实生活”中的方式对数据进行建模。 数组是项列表,对象是项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.