【发布时间】:2018-03-22 05:58:25
【问题描述】:
我有一个JSON 对象数组,如下所示:
var data = [
{name: '', age: 12},
{name: 'bcd', age: 15},
{name: 'cdf', age: 13},
{name: '', age: 11},
{name: 'fgh', age: 8},
{name: '', age: 10},
];
使用underscore 我想修剪这个对象,让它返回:
[{name: 'bcd', age: 15},
{name: 'cdf', age: 13},
{name: '', age: 11},
{name: 'fgh', age: 8}]
我尝试了以下代码:
var firstIndex = _.indexOf(data, _.find(data, function(d){ return d.name !== ''; }));
var lastIndex = _.indexOf(data, _.find(data.slice().reverse(), function(d){ return d.name !== ''; }));
console.log(data.slice(firstIndex, lastIndex + 1) );
但我认为,应该有比这更好的方法。
这里是JSFiddle
编辑:
我希望在名称为空白的情况下修剪顶部和底部的所有数据。但不在数组元素的中间。
与string.Trim() 方法相同。当我对“一二三”文本应用修剪时,它会从开头和结尾删除空格,但不会删除单词之间的空格。
【问题讨论】:
-
返回对象的逻辑是什么
-
你想要 11 岁的空白名字吗?
-
您想从数组中删除第一项和最后一项?
-
@gurvinder372 我已经更新了问题并提到了它应该返回的内容。
-
@brk 我更新了问题并提到了它应该返回的内容。
标签: javascript arrays json filter underscore.js