jquery - 如何使用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"}]}
解决方案
您可以使用三元运算符来检查数组是否为空。这是样本。
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应用了检查,你也可以对其他对象做同样的事情。
推荐阅读
- java - MultipartFile 为空时如何接受?
- vim - 在 Vim 中将 `:vs|term` 映射到单个键没有按预期工作
- angular - 通过将参数传递给服务类来测试订阅功能
- c - Ctrl+C按下时如何恢复正常终端?
- nlp - 为什么转换器编码组件使用 6 个编码器层的堆栈?
- python - 如何在 Visual Studio 代码中让 print() 和 input() 成为不同的颜色?
- python - 为什么它不接受函数中的数据
- asp.net-mvc - Asp.Net Core Web App 从磁盘播放和下载视频
- python - 我想我在更新 heroku 上的机器人时遇到了错误
- java - 线性布局格式一直显示错误,我已经尽我所能但仍然无法正常工作。?