原始数组
function t1() {
var v = document.getElementById('<%=pnlFiltri.ClientID %>');
alert(v.children.length)
}
<asp:Panel ID="pnlFiltri" runat="server" DefaultButton="Upload">
<asp:TextBox runat="server" type="text" ID="tb_Descr" name="Editbox1" value="" />
<asp:TextBox runat="server" type="text" ID="TextBox1" name="Editbox1" value="" />
</asp:Panel>
<asp:Button ID="Upload" runat="server" Text="Upload" OnClientClick="t1();return false;" />
预期数组,
myArr = [
{name:'abcd',values:[undefined,{quarter: "Q2-2016", koordinaten: 119},{quarter: "Q3-2016", koordinaten: 129},undefined]},
{name:'abcd',values:[undefined,undefined,{quarter: "Q4-2016", koordinaten: 19},undefined]}
]
我想在结果数组
中删除带索引的未定义元素答案 0 :(得分:0)
尝试map
和filter
myArr.map( s => (s.values = s.values.filter( p => JSON.stringify(p) != "{}" ), s ) );
<强>演示强>
var myArr = [
{name:'abcd',values:[{undefined},{quarter: "Q2-2016", koordinaten: 119},
{quarter: "Q3-2016", koordinaten: 129},{undefined}]},
{name:'abcd',values:[{undefined},{undefined},{quarter: "Q4-2016", koordinaten: 19},{undefined}]}
];
var output = myArr.map(s => (s.values = s.values.filter(p => JSON.stringify(p) != "{}"), s));
console.log(output);
答案 1 :(得分:0)
这应该可以解决问题,你基本上需要通过循环来删除所有未定义的值。
myArr = [
{name:'abcd',values:[undefined,{quarter: "Q2-2016", koordinaten: 119},{quarter: "Q3-2016", koordinaten: 129},undefined]},
{name:'abcd',values:[undefined,undefined,{quarter: "Q4-2016", koordinaten: 19},undefined]}
]
myArr.forEach(arrItem => {
arrItem.values = arrItem.values.filter(x => !!x);
});
console.log(myArr);
&#13;
答案 2 :(得分:0)
您可以使用falsy和Array#filter
作为回调过滤Boolean
个值(例如undefined
)。
var array = [{ name: 'abcd', values: [undefined, { quarter: "Q2-2016", koordinaten: 119 }, { quarter: "Q3-2016", koordinaten: 129 }, undefined] }, { name: 'abcd', values: [undefined, undefined, { quarter: "Q4-2016", koordinaten: 19 }, undefined] }];
array.forEach(function (o) {
o.values = o.values.filter(Boolean);
});
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 3 :(得分:0)
您可以使用下划线表示此类任务。
Compact方法
myArr = [{
name: 'abcd',
values: [undefined, {
quarter: "Q2-2016",
koordinaten: 119
}, {
quarter: "Q3-2016",
koordinaten: 129
}, undefined]
}, {
name: 'abcd',
values: [undefined, undefined, {
quarter: "Q4-2016",
koordinaten: 19
}, undefined]
}]
// Cleansed Array
myArr = myArr.map(function(arrItem) {
arrItem.values = _.compact(arrItem.values);
return arrItem
})
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;