我有JSON数据,例如:
[{slug: 'a'}, {slug: 'b'}, {slug: 'c'}, {slug: 'd'}]
现在我想在我的控制器中编写代码,这样当我将b
传递给它时,它应该返回:
[{slug: 'b'}, {slug: 'c'}, {slug: 'd'}]
请使用AngularJS建议一个很好的方法。
由于
答案 0 :(得分:2)
基本上你需要这样的功能:
var takeStartingAt = function (data, start) {
var result = [],
skip = true;
for (var i = 0; i < data.length; i++) {
if (data[i].slug === start) { skip = false; }
if (skip) { continue; }
result.push(data[i]);
}
return result;
};
就是这样。现在您可以按如下方式使用此功能:
var data = [
{ slug: 'a' },
{ slug: 'b' },
{ slug: 'c' },
{ slug: 'd' }
];
var filteredData = takeStartingAt(data, 'b');
然后filteredData
将是一个仅包含从slug: 'b'
开始的对象的数组。
答案 1 :(得分:0)
试试这个,它会对你有用
function invert(obj, start) {
var arrObj=[];
var isStart=false;
for(var i=0;i<obj.length;i++){
var ob=obj[i];
for (var prop in ob) {
if(ob.hasOwnProperty(prop)) {
if(ob[prop]==start){
isStart=true;
}
if(isStart){
arrObj.push(ob);
}
}
}
}
return arrObj;
};
var ob1= invert ([{slug: 'a'}, {slug: 'b'}, {slug: 'c'}, {slug: 'd'}],'c');
alert(JSON.stringify(ob1));
<强> Working DEMO 强>