5
"category": [{
      "id": 28,
      "name": "Dogs"
  },
  {
      "id": 14,
      "name": "Cats"
  },
  {
      "id": 878,
      "name": "Sheep"
  }],

我已经解析了上面的 JSON(使用 .ajax 和 jsonp 作为回调),我想将“name”的所有值加入一个字符串。即“狗、猫、羊”。我怎样才能做到这一点?我尝试过简单地加入“类别”和名称,即

var cats = categories.join(", ");

或者

var cats = categories.name.join(", ");

但是由于我们正在查看它的成员及其字符串值,所以它不起作用。

4

3 回答 3

12

这看起来像是一份工作$.map

var data = {
    "category": [{
          "id": 28,
          "name": "Dogs"
      },
      {
          "id": 14,
          "name": "Cats"
      },
      {
          "id": 878,
          "name": "Sheep"
      }]
}

var cats = $.map(data.category, function(v){
    return v.name;
}).join(', ');
于 2012-08-20T19:37:28.183 回答
1
var text = "";
for(var i=0; category.length; i++)
{
   text += category[i].name;
   if(i!=category.length-1)
       text += ", ";
}
于 2012-08-20T19:33:29.300 回答
1

更简单、更短的版本:

const category = [{
      "id": 28,
      "name": "Dogs"
  },
  {
      "id": 14,
      "name": "Cats"
  },
  {
      "id": 878,
      "name": "Sheep"
  }]
let cats = category.map((item) => {
             return item.name;
           }).join(", ");

在第一部分,map 函数将返回一个包含内容的字符串数组item.name

[ "Dogs", "Cats", "Sheep" ]

因为在数组上,我们有能力调用join它将把数组中的所有项目放在一起,但由我们传递给的任何内容分隔join(在这种情况下,我们", "将用逗号和空格分隔)

最后我们有:

Dogs, Cats, Sheep
于 2021-08-02T06:05:18.950 回答