连接jade中数组对象的内容得到一个字符串
Concatenate contents of array object in jade to get a string
我有一个对象,如果我想要一个列表,我可以从中提取值:
each gear_tag in store.GearTags
li #{gear_tag.Tag.tag_name}
现在我想将所有 tag_name 与中间的 ', ' 连接起来。我的意思是我希望生成的字符串类似于:
"tag_name_1, tag_name_2, tag_name_3, tag_name_4
" 如果对象有 4 gear_tags.
如何实现?
遗憾的是我没有早点弄清楚这一点。
- var desc_tags = ''
each gear_tag, i in store.GearTags
- if(i == retailer.GearTags.length - 1)
- desc_tags = desc_tags + gear_tag.Tag.tag_name
- else
- desc_tags = desc_tags + gear_tag.Tag.tag_name + ", "
我在 "each" 语句之前输入了“-”,导致代码无法运行。
您可以将数组 .map
方法与 .join
方法结合使用。
var tagString = store.GearTags.map(function (gear_tag) {
return gear_tag.Tag.tag_name;
}).join(', ');
鉴于:
store.GearTags = [
{Tag: {tag_name: 'tag_name_1'}},
{Tag: {tag_name: 'tag_name_2'}},
{Tag: {tag_name: 'tag_name_3'}}
];
以上逻辑会产生:
"tag_name_1, tag_name_2, tag_name_3"
Array.map iterates over every item in an array and lets you return a new value for that position in a new array that .map
returns. Then Array.join 完全符合您的要求,返回数组中所有项目的串联字符串。
我们使用 .map
创建一个新数组,其中只有标签名称字符串。然后使用 .join
我们将它们全部连接成一个以逗号分隔的大字符串。
如果你这样做会怎样:
- var desc_tags = tags.map(function(e) {return e.Tag.tag_name}).join(', ');
我有一个对象,如果我想要一个列表,我可以从中提取值:
each gear_tag in store.GearTags
li #{gear_tag.Tag.tag_name}
现在我想将所有 tag_name 与中间的 ', ' 连接起来。我的意思是我希望生成的字符串类似于:
"tag_name_1, tag_name_2, tag_name_3, tag_name_4
" 如果对象有 4 gear_tags.
如何实现?
遗憾的是我没有早点弄清楚这一点。
- var desc_tags = ''
each gear_tag, i in store.GearTags
- if(i == retailer.GearTags.length - 1)
- desc_tags = desc_tags + gear_tag.Tag.tag_name
- else
- desc_tags = desc_tags + gear_tag.Tag.tag_name + ", "
我在 "each" 语句之前输入了“-”,导致代码无法运行。
您可以将数组 .map
方法与 .join
方法结合使用。
var tagString = store.GearTags.map(function (gear_tag) {
return gear_tag.Tag.tag_name;
}).join(', ');
鉴于:
store.GearTags = [
{Tag: {tag_name: 'tag_name_1'}},
{Tag: {tag_name: 'tag_name_2'}},
{Tag: {tag_name: 'tag_name_3'}}
];
以上逻辑会产生:
"tag_name_1, tag_name_2, tag_name_3"
Array.map iterates over every item in an array and lets you return a new value for that position in a new array that .map
returns. Then Array.join 完全符合您的要求,返回数组中所有项目的串联字符串。
我们使用 .map
创建一个新数组,其中只有标签名称字符串。然后使用 .join
我们将它们全部连接成一个以逗号分隔的大字符串。
如果你这样做会怎样:
- var desc_tags = tags.map(function(e) {return e.Tag.tag_name}).join(', ');