如何在javascript中分离数组
我有一个像这样的数组对象如何在javascript中分离数组,javascript,arrays,Javascript,Arrays,我有一个像这样的数组对象 dta: [ { amt: "200000", dat: "2016-10-14 10:41:20 am", grt: "GRT", uid:"example123" }, { amt: "300000", dat: "2016-10-14 10:41:20 am",
dta: [
{
amt: "200000",
dat: "2016-10-14 10:41:20 am",
grt: "GRT",
uid:"example123"
},
{
amt: "300000",
dat: "2016-10-14 10:41:20 am",
grt: "RPD",
uid:"example123"
}]
我希望根据grt:
我尝试了这个方法,但它从1开始创建secong数组索引
function seperate(data) {
console.log(data)
for (var i = 0; i < data.dta.length; i++) {
if (data.dta[i].grt === 'GRT') {
owing[i] = data.dta[i];
} else {
repaid[i] = data.dta[i];
}
}
}
功能分离(数据){
console.log(数据)
对于(var i=0;i
试试:
您当前的解决方案创建了两个数组,每个数组的长度(几乎)等于输入数组,但其中有很多孔。例如,考虑(简化)输入数组如下:
['GRT', 'RPD', 'GRT', 'RPD', 'GRT', 'RPD']
您的解决方案创建了两个如下所示的阵列:
['GRT' , undefined, 'GRT' , undefined, 'GRT']
[undefined, 'RPD' , undefined, 'RPD' , undefined, 'RPD']
['GRT', 'GRT', 'GRT']
['RPD', 'RPD', 'RPD']
使用push
创建如下两个数组:
['GRT' , undefined, 'GRT' , undefined, 'GRT']
[undefined, 'RPD' , undefined, 'RPD' , undefined, 'RPD']
['GRT', 'GRT', 'GRT']
['RPD', 'RPD', 'RPD']
您的代码独立于数组增加索引。因此,无论更新哪个数组,用于两个数组的索引都将递增1 您可以为每个数组使用单独的索引变量,也可以使用如下所示的数组和函数
var owing = [];
var repaid = [];
function seperate(data) {
data.dta.forEach(function(d) {
if (d.grt === 'GRT') {
owing.push(d);
} else {
repaid.push(d);
}
});
}
使用调试器浏览您的代码,您将很快看到问题所在。可能是重复的不是我的dv,但您可以用更通用的代码替换对“GRT”的检查。