它应该返回9-12,1-4,5-8,9-11
,但却返回9-12,1-4,5-8,9-11,,,,
var arr = [{
Sanju: '9-12'
}, {
Sanju: '1-4'
}, {
Sanju: '5-8'
}, {
Sanju: '9-11'
},
{
IRONMAN: '9-12'
}, {
VIVEGAM: '1-4'
}, {
VIVEGAM: '5-8'
}, {
VIVEGAM: '9-11'
}
];
var b = Array.from(arr, x => x.Sanju);
document.write(b);
document.write(Array.isArray(b));
由于不是arr中的所有值都包含Sanju
,当您返回x.Sanju
时,有些值会给您带来未定义的结果。您可以使用filter来删除像这样的值
var arr = [{Sanju: '9-12'},{Sanju: '1-4'}, {Sanju: '5-8'},{Sanju: '9-11'},
{IRONMAN: '9-12'},{VIVEGAM: '1-4'}, {VIVEGAM: '5-8'},{VIVEGAM: '9-11'}
];
var b= Array.from(arr, x => x.Sanju).filter(Boolean);
document.write(b);
document.write(Array.isArray(b));
有关.filter(Boolean)
如何在中工作的更多详细信息,请参阅从数组中删除未定义的值
它应该返回9-12,1-4,5-8,9-11,但它返回的是9-12,1-4.5-8,9-11、、、、
Coz在某些对象上没有Sanju
属性。你应该先过滤你的数组,然后做剩下的
var arr = [{
Sanju: '9-12'
}, {
Sanju: '1-4'
}, {
Sanju: '5-8'
}, {
Sanju: '9-11'
},
{
IRONMAN: '9-12'
}, {
VIVEGAM: '1-4'
}, {
VIVEGAM: '5-8'
}, {
VIVEGAM: '9-11'
}
];
var o = arr.filter(i=> i.Sanju);
var b = Array.from(o, x => x.Sanju);
document.write(b);
document.write(Array.isArray(b));