Javascript循环并过滤掉null或空的数据
Javascript Loop and filter out the data thats null or empty
我有一些数据,我需要过滤掉null或空的数据,并创建一个过滤的新数据列表。
在这种情况下,有时"names"数组是空的,所以我需要数据。
{
"people": [
{
"id": "2",
"description": "desc here",
"names": [
{
"name": "name here",
},
{
"name": "name here",
}
],
"other": "0"
},
{
"id": "200",
"description": "desc here",
"names": null
"other": "0"
},
{
"id": "64",
"description": "desc here",
"names": [
{
"name": "name here",
},
{
"name": "name here",
}
],
"other": "1"
}
]
}
我该怎么做?
可以递归地迭代数组和对象,直到找到一个原语。然后检查并返回值。
function copy(object) {
var o;
if (Array.isArray(object)) {
return object.reduce(function (r, a) {
var v = copy(a);
v.names !== null && v.names !== '' && r.push(v);
return r;
}, []);
}
if (object !== null && typeof object === 'object') {
o = {};
Object.keys(object).forEach(function (k) {
o[k] = copy(object[k]);
});
return o;
}
return object;
}
var data = { people: [{ id: "2", description: "desc here", names: [{ id: "345", name: "name here", }, { id: "54", name: "name here", foo: "", }], other: "0" }, { id: "2", description: "desc here", names: null, other: "0" }, { id: "64", description: "desc here", names: [{ id: "87", name: "name here", }, { id: "53", name: "name here", }], other: "1" }] },
result = copy(data);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
var newArray = oldArray.filter(function(v){return v!==''});
new_array=yourObject.people.filter(function(elem){
return elem.names!==null && elem.names!==""
});
相关文章:
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- javascript对象显示为null,但object.properties返回数据
- 为什么我发布的数据在这个AJAX调用的Controller目标中为null
- 电话间隙.正在向数据库表中插入Null值.数据类型冲突
- MVC 控制器正在从具有数据的 JavaScript 对象传入 null
- 纯 JS 获取所选选项数据属性值返回 Null
- 尝试将使用 SQL 语句生成的 JSON 数据从 PHP 脚本返回到 JS 网页,但改为 null
- 当变量的数据类型在 javascript 中为 'Null'
- Node.js在返回数据之前返回null的函数/实现回调
- 除非访问了数据属性,否则Blaze.getData(el)将返回null
- jQuery数据表-ASP.NET控制器参数始终为null
- 从ajax数据中获取null
- 处理Rally数据存储中的null异常
- MVC控制器'发布JSON数据时,s字符串[]参数为null
- '数据'为null或不是对象IE8
- 从视图发送到web api控制器时,数据始终为null
- 只有当数据为数字或null时,才会触发删除GridView中的行时使用数据进行确认
- 传递的角度UI模态数据为null
- JSON格式的Ajax源数据-无法获取属性'长度'的未定义引用或null引用