Javascript 如果AngularJS满足条件,我只想添加JSON信息

Javascript 如果AngularJS满足条件,我只想添加JSON信息,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个名为components.JSON的JSON: {"components": { "boardSpaces": [ {"name":"GO!", "price":0, "position":0, "type":"go"}, {"name":"Mediterranean Avenue", "type": "property", "price":60, "position":1}, {"name":"Community Chest",

我有一个名为components.JSON的JSON:

{"components": {
    "boardSpaces": [
        {"name":"GO!", "price":0, "position":0, "type":"go"},
        {"name":"Mediterranean Avenue", "type": "property", "price":60, "position":1}, 
        {"name":"Community Chest", "price":0, "position":2, "type":"communityChest"}, 
        {"name":"Baltic Avenue", "price":60, "position":3, "type":"property"},
        {"name":"Income Tax", "price":0, "type":"incomeTax", "position":4},
        {"name":"Reading Railroad", "price":200, "position":5, "type":"railroad"}, 
        {"name":"Oriental Avenue", "price":100, "position":6, "type":"property"}, 
        {"name":"Chance", "price":0, "position":7, "type":"chance"},
        {"name":"Vermont Avenue", "price":100, "position":8, "type":"property"}, 
        {"name":"Connecticut Avenue", "price":120, "position":9, "type":"property"}, 
        {"name":"Jail", "price":0, "position":10, "type":"jail"}]
}}
我想在angularjs上创建一个数组,将每个对象保存在
boardSpaces
下,但前提是
price
不等于0。简言之,我需要一个名为
self.board
的数组,只要
价格
等于
0
就可以将
boardSpaces
中的每个对象保存到数组中

这是我的angularjs文档:

self.board = [];
$http.get('components/components.json').then(function(response) {
    for(space in response.data.components.boardSpaces) {
        if(response.data.components.boardSpaces[space].price === 0) {
            self.board.push(space);
        };
    };
});

出于某种原因,当我尝试使用
ng repeat
在html页面中循环此操作时,它不想工作。我在没有条件的情况下尝试了这个方法,它确实有效,但由于某种原因,它不能与
if
语句一起工作。

使用
forEach
遍历数组怎么样?我认为语法更容易理解:

response.data.components.boardSpaces.forEach(function (element,index) {
    if(element.price !== 0) { // if not zero ...
        self.board.push(index); //or element, not sure what you are trying to store
    };
});

使用
forEach
遍历数组怎么样?我认为语法更容易理解:

response.data.components.boardSpaces.forEach(function (element,index) {
    if(element.price !== 0) { // if not zero ...
        self.board.push(index); //or element, not sure what you are trying to store
    };
});
这个怎么样

$http.get('components/components.json').then(function(response) {
    self.board = response.data.components.boardSpaces.
      filter(function(space) {
        return space.price === 0;
      });
});
或者在工作代码段中使用纯javascript:

var数据={“组件”:{
“董事会空间”:[
{“name”:“GO!”,“price”:0,“position”:0,“type”:“GO”},
{“名称”:“地中海大道”,“类型”:“物业”,“价格”:60,“位置”:1},
{“名称”:“公益金”,“价格”:0,“职位”:2,“类型”:“公益金”},
{“名称”:“波罗的海大道”,“价格”:60,“位置”:3,“类型”:“物业”},
{“名称”:“所得税”,“价格”:0,“类型”:“incomeTax”,“位置”:4},
{“名称”:“阅读铁路”,“价格”:200,“位置”:5,“类型”:“铁路”},
{“名称”:“东方大道”,“价格”:100,“位置”:6,“类型”:“物业”},
{“name”:“Chance”,“price”:0,“position”:7,“type”:“Chance”},
{“名称”:“佛蒙特大道”,“价格”:100,“位置”:8,“类型”:“物业”},
{“名称”:“康涅狄格大道”,“价格”:120,“位置”:9,“类型”:“物业”},
{“名称”:“监狱”,“价格”:0,“位置”:10,“类型”:“监狱”}]
}};
函数getData(){
返回数据。组件。板空间。过滤器(函数(空间){
返回空间。价格===0;
});
}
var terminal=document.getElementById('terminal');
getData().forEach(函数(空间){
terminal.innerHTML+=space.name+'-'+space.price+'\n';
});
pre{
边框:1px纯色灰色;
背景:浅灰色;
填充:15px;
利润率:32px;
}
这个怎么样

$http.get('components/components.json').then(function(response) {
    self.board = response.data.components.boardSpaces.
      filter(function(space) {
        return space.price === 0;
      });
});
或者在工作代码段中使用纯javascript:

var数据={“组件”:{
“董事会空间”:[
{“name”:“GO!”,“price”:0,“position”:0,“type”:“GO”},
{“名称”:“地中海大道”,“类型”:“物业”,“价格”:60,“位置”:1},
{“名称”:“公益金”,“价格”:0,“职位”:2,“类型”:“公益金”},
{“名称”:“波罗的海大道”,“价格”:60,“位置”:3,“类型”:“物业”},
{“名称”:“所得税”,“价格”:0,“类型”:“incomeTax”,“位置”:4},
{“名称”:“阅读铁路”,“价格”:200,“位置”:5,“类型”:“铁路”},
{“名称”:“东方大道”,“价格”:100,“位置”:6,“类型”:“物业”},
{“name”:“Chance”,“price”:0,“position”:7,“type”:“Chance”},
{“名称”:“佛蒙特大道”,“价格”:100,“位置”:8,“类型”:“物业”},
{“名称”:“康涅狄格大道”,“价格”:120,“位置”:9,“类型”:“物业”},
{“名称”:“监狱”,“价格”:0,“位置”:10,“类型”:“监狱”}]
}};
函数getData(){
返回数据。组件。板空间。过滤器(函数(空间){
返回空间。价格===0;
});
}
var terminal=document.getElementById('terminal');
getData().forEach(函数(空间){
terminal.innerHTML+=space.name+'-'+space.price+'\n';
});
pre{
边框:1px纯色灰色;
背景:浅灰色;
填充:15px;
利润率:32px;
}

问题是您将
用于。。。在
中,您应该使用forEach的

  response.data.components.boardSpaces.forEach(function (space) {
      if(space.price === 0) {
          self.board.push(space);
      };
  });

问题是您使用的
用于。。。在
中,您应该使用forEach的

  response.data.components.boardSpaces.forEach(function (space) {
      if(space.price === 0) {
          self.board.push(space);
      };
  });

查看您的if条件是否满足,并记录self.board的值,同时尝试打印价格(例如,价格可能有不同的数据类型,双精度“==”可能会起作用),如果您要查找的价格不同于零,则条件应为!==,not===查看是否满足您的if条件并记录self.board的值,同时尝试打印价格(例如,价格可能有不同的数据类型,双精度“==”可能会起作用),如果您要查找的价格不同于零,则条件应为!==,不是===