JavaScript何时使用arrayobject vs objectarray?
我很困惑什么时候应该声明数组中的对象/对象中的数组 数组中的对象JavaScript何时使用arrayobject vs objectarray?,javascript,arrays,object,Javascript,Arrays,Object,我很困惑什么时候应该声明数组中的对象/对象中的数组 数组中的对象 var data = [{'Name': Alex,'Value': 2}] 对象内的数组 var data = {interest:['a','b','c'], name:['Ali','Baba','Alan']} 有人能解释一下吗?提前感谢这两种表述都是有效的,但您应该根据以后对这些数据的处理情况选择一种表述。你应该问问自己:什么样的操作更频繁:添加/删除还是读取/查找?这个问题的答案可能会帮助你做出选择 使用对象数组可
var data = [{'Name': Alex,'Value': 2}]
对象内的数组
var data = {interest:['a','b','c'], name:['Ali','Baba','Alan']}
有人能解释一下吗?提前感谢这两种表述都是有效的,但您应该根据以后对这些数据的处理情况选择一种表述。你应该问问自己:什么样的操作更频繁:添加/删除还是读取/查找?这个问题的答案可能会帮助你做出选择 使用对象数组可以更容易地添加/删除实体,这可以作为单个原子操作来完成。考虑以下情况:
var arr = [{x: 'a', y: 1}, {x: 'b', y: 2}];
arr.push({x: 'c', y: 3}); // add new to the end
var obj = arr.shift(); // remove first element of array and assign it to variable
对于数组对象,您需要分别删除x和y:
var obj = {x: ['a', 'b'], y: [1, 2]};
// add
obj.x.push('c');
obj.y.push(3);
// remove
obj.x.shift();
obj.y.shift();
然而,当您有很多空值时,数组的对象可能具有更紧凑的表示形式:通过网络发送的比特数更少,查找像min/max这样的内容的迭代次数更少
var arr = [
{x: 'a'},
{y: 1},
{y: 2},
{y: 3},
{y: 4},
{y: 5},
{x: 'b', y: 6}
];
// Find max of x
var maxX = arr.reduce(function(max, obj) { // 7 iterations
return obj.x > max ? obj.x : max;
}, '')
与数组的对象相同:
// more compact
var obj = {
x: ['a', 'b'],
y: [1, 2, 3, 4, 5, 6]
}
// less iterations (only 2 in this case)
var maxX = obj.x.reduce(function(max, val) {
return val > max ? val : max;
}, '')
这取决于你需要储存什么。数组在订购东西时很好。当您想要直接访问属性时,对象是好的。例如:[{name:'foo'},{name:'bar'}]不是一个好主意,因为在数组中查找对象是打开的,如果需要对象数组或具有数组属性的对象,则不需要打开顺序hereDepends:pIts类似于何时在表中使用bulletpoints而不是在bulletpoints下的表中使用bulletpoints