返回符合条件的数组中的项目

时间:2013-03-04 20:25:20

标签: javascript jquery arrays

使用以下代码(或不使用),我尝试返回所有项目的title属性,只要title属性不是NaN

我了解目前所有带有title属性的项目都将被返回。如何指定要返回的内容?

function loadItems(id){
   itemPath = start.contains.models;
   for (var i = 0; i<itemPath.length; i++) {
      if(itemPath[i].attributes.id==id) {
         return itemPath[i].attributes.grades.models.map(function(g) {
            $('#foot').append(g.attributes.title);
         });
         }
      }
}

3 个答案:

答案 0 :(得分:2)

在你刚刚返回所有东西的循环之外,定义一个容器来容纳有效的项目(空数组)。当您遍历每个项目时,如果它包含title属性并且标题符合您的条件,请将当前项目添加到您在循环外部创建的容器中。只有符合您需要的项目才会将项目添加到您返回的容器中。

当你完成循环时,返回那个现在应该只包含标题并符合你的检查条件的容器。

如下所示,在你的循环中,如果标题isNaN()将其添加到你的数组中以返回。

function loadItems(id){
  itemPath = start.contains.models;
  var returnMe = new Array();
  for (var i = 0; i<itemPath.length; i++) {
    if(itemPath[i].attributes.id==id) {
      itemPath[i].attributes.grades.models.map(
        function(g) {
          if(isNaN(g.attributes.title)){
            returnMe.push(g.attributes.title);
          }}
      );
    }
  }
  return returnMe;
}

答案 1 :(得分:0)

这样的东西?

function loadItems(id){
itemPath = start.contains.models;
for (var i = 0; i<itemPath.length; i++) {
  if(itemPath[i].attributes.id==id) {
     return itemPath[i].attributes.grades.models.map(function(g) {
      var_title = g.attributes.title;
      if(var_title=='My Title'){
        $('#foot').append(g.attributes.title);}
     });
     }
  }
}

Saludos;)

答案 2 :(得分:0)

也许这个?我需要更多关于itemPath的信息才能确定。

function loadItems(id){
    $(itemPath).find("#"+id+"[title]").each(function () {
        $("#foot").append($(this).attr("title"));
    });
}