javascript,添加数组"around"对象
javascript, add array "around" object
我一直在寻找这个问题的答案,但似乎找不到任何答案,如果已经有答案,我深表歉意。
我期待一个对象,让我们这样说:
{
name: 'myname',
items: [
{
itemID: '1'
},
{
itemID: '2'
},
{
itemID: '3'
}
]
}
问题是每当 "items" 中只有一个对象时,它看起来像这样:
{
name: 'myname',
items: {
itemID: '1'
}
}
这意味着我的 forEach 函数将中断,因为 "items" 不再是对象数组。在 forEach 中的每个 "items" 对象中有很多数据和完成的事情,所以我宁愿不必同时使用 forEach 和另一个函数,而是将其转换为数组并只使用 forEach。
这就是我想要做的:
if (items is not array) {
//Convert the object to this:
{
name: 'myname',
items: [
{
itemID: '1'
}
]
}
}
我无法确定 items 是对象数组还是只是一个对象(在这两种情况下 typeof items 都将 return "object"),以及如何将其转换为数组它不是一个数组。非常感谢帮助或提示
如果需要,您可以用数组包装项目,例如:
(Array.isArray(obj.items) ? obj.items : [obj.items]).
forEach(function(item){
.
.
.
});
使用 Array.isArray(obj) 检查 var
是否为 array
例如:
var object1 = {
name: 'myname',
items: [{
itemID: '1'
}, {
itemID: '2'
}, {
itemID: '3'
}]
};
var object2 = {
name: 'myname',
items: {
itemID: '1'
}
};
if (Array.isArray(object1.items)) {
document.write('Hey guy I\'m an array!<br />');
} else {
document.write('Hey guy I\'m not an array!<br />');
}
if (Array.isArray(object2.items)) {
document.write('Hey guy I\'m an array!<br />');
} else {
document.write('Hey guy I\'m not an array!<br />');
}
除了其他答案之外,我只提供这个,因为我认为它们不够清楚。
var items = obj.items;
if( ! Array.isArray(items) ){
items = [items];
}
items.forEach(function(){
// iterate over each item
});
这些步骤可以合并,如 CD.. 的回答
我一直在寻找这个问题的答案,但似乎找不到任何答案,如果已经有答案,我深表歉意。
我期待一个对象,让我们这样说:
{
name: 'myname',
items: [
{
itemID: '1'
},
{
itemID: '2'
},
{
itemID: '3'
}
]
}
问题是每当 "items" 中只有一个对象时,它看起来像这样:
{
name: 'myname',
items: {
itemID: '1'
}
}
这意味着我的 forEach 函数将中断,因为 "items" 不再是对象数组。在 forEach 中的每个 "items" 对象中有很多数据和完成的事情,所以我宁愿不必同时使用 forEach 和另一个函数,而是将其转换为数组并只使用 forEach。
这就是我想要做的:
if (items is not array) {
//Convert the object to this:
{
name: 'myname',
items: [
{
itemID: '1'
}
]
}
}
我无法确定 items 是对象数组还是只是一个对象(在这两种情况下 typeof items 都将 return "object"),以及如何将其转换为数组它不是一个数组。非常感谢帮助或提示
如果需要,您可以用数组包装项目,例如:
(Array.isArray(obj.items) ? obj.items : [obj.items]).
forEach(function(item){
.
.
.
});
使用 Array.isArray(obj) 检查 var
是否为 array
例如:
var object1 = {
name: 'myname',
items: [{
itemID: '1'
}, {
itemID: '2'
}, {
itemID: '3'
}]
};
var object2 = {
name: 'myname',
items: {
itemID: '1'
}
};
if (Array.isArray(object1.items)) {
document.write('Hey guy I\'m an array!<br />');
} else {
document.write('Hey guy I\'m not an array!<br />');
}
if (Array.isArray(object2.items)) {
document.write('Hey guy I\'m an array!<br />');
} else {
document.write('Hey guy I\'m not an array!<br />');
}
除了其他答案之外,我只提供这个,因为我认为它们不够清楚。
var items = obj.items;
if( ! Array.isArray(items) ){
items = [items];
}
items.forEach(function(){
// iterate over each item
});
这些步骤可以合并,如 CD.. 的回答