应该返回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));
答案 0 :(得分:4)
由于并非arr中的所有值都包含Sanju
,所以当您返回x.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 b= Array.from(arr, x => x.Sanju).filter(Boolean);
document.write(b);
document.write(Array.isArray(b));
查看Removing undefined values from Array,了解有关.filter(Boolean)
工作方式的更多信息
答案 1 :(得分:4)
它应该返回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));