首页 > 解决方案 > 如何使用jquery在多个数组中过滤长度大于零的数组?

问题描述

我正在尝试使用 jquery 扩展附加多个数组。我只想将那些长度大于零的数组添加到 jquery 扩展中。有人可以帮忙吗?

personarray['Person']=person;
providerarray['Provider']=provider;
researcherarray['Researcher']=researcher;

var dataStr;

dataStr = JSON.stringify($.extend(true, personarray, providerarray, researcherarray));

而不是添加所有三个数组,我只想过滤非空数组并附加它们。

例如,如果 person 数组为空,那么我将 datastr 设为 -

{"Profile Id":1234,"Person":[],"Provider":[{"table name":"Provider","unique id":"0","field name":"ProSalary","field value":"$320,800"}],"Researcher":[{"table name":"Researcher","unique id":"0","field name":"ProSalary","field value":"$320,800"}]}

相反,我应该能够得到它,如下所示,即删除人员数组-

{"Profile Id":1234,"Provider":[{"table name":"Provider","unique id":"0","field name":"ProSalary","field value":"$320,800"}],"Researcher":[{"table name":"Researcher","unique id":"0","field name":"ProSalary","field value":"$320,800"}]}

标签: jquery

解决方案


您可以使用三元运算符来检查数组是否为空。这是样本。

var personarray={};
personarray['Person']=[];

var providerarray={};
providerarray['Provider']=[1,2,3];

var researcherarray={};
researcherarray['Researcher']=['A','B'];

var dataStr = JSON.stringify($.extend(true, (personarray.Person.length == 0 ? {} : personarray), providerarray, researcherarray));

console.log(dataStr)

它会给出这个输出

{"Provider":[1,2,3],"Researcher":["A","B"]}

演示

注意:我只对personarray应用了检查,你也可以对其他对象做同样的事情。


推荐阅读