Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AngularJS从JSON获取子集_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 如何使用AngularJS从JSON获取子集

Javascript 如何使用AngularJS从JSON获取子集,javascript,json,angularjs,Javascript,Json,Angularjs,我有JSON数据,例如: [{slug: 'a'}, {slug: 'b'}, {slug: 'c'}, {slug: 'd'}] 现在我想在控制器中编写代码,这样当我将b传递给它时,它应该返回: [{slug: 'b'}, {slug: 'c'}, {slug: 'd'}] 请建议一个好的方法来实现这一点与AngularJS 谢谢你试试这个,它会对你有用的 function invert(obj, start) { var arrObj=[]; var isStart=false;

我有JSON数据,例如:

[{slug: 'a'}, {slug: 'b'}, {slug: 'c'}, {slug: 'd'}]
现在我想在控制器中编写代码,这样当我将
b
传递给它时,它应该返回:

[{slug: 'b'}, {slug: 'c'}, {slug: 'd'}]
请建议一个好的方法来实现这一点与AngularJS


谢谢你试试这个,它会对你有用的

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));
功能反转(obj,启动){
var arrObj=[];
var-isStart=false;

对于(var i=0;i,基本上需要这样一个函数:

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;
};

然后,
filteredData
将是一个数组,它只包含从
slug:'b'

开始的对象。请详细说明如何传递json和用于启动子集的参数。我已经更新了答案,请检查它,现在它将根据您的要求工作,因为代码没有回答问题(“因此,当我通过<代码> B<代码>它时,你甚至不考虑这个问题,而且-另外它不起作用。你的演示返回所有对象,包括SLUG <代码> A<代码>。而且,代码是坏的风格。(
ob
prop
new_obj
arrObj
是不一致的名称,缩进是错误的,…最后但并非最不重要的一点,为什么函数名为
invert
?它不反转任何内容).看,我只是放了帮助代码,用户可以通过代码中的一些操作来实现目标。顺便说一句,我已经更新了代码。这与不一致的名称的不良样式无关。您的代码仍然是错误的:您颠倒了键和值,这不是要求的。
var data = [
  { slug: 'a' },
  { slug: 'b' },
  { slug: 'c' },
  { slug: 'd' }
];
var filteredData = takeStartingAt(data, 'b');