为什么数组返回空格



它应该返回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));

最新更新