在JavaScript中创建对象的字符串
我试图从一个JavaScript对象中组合出一个字符串,但遇到了一些问题 我创建了一个函数,它接受对象并返回字符串。初始对象如下所示:在JavaScript中创建对象的字符串,javascript,Javascript,我试图从一个JavaScript对象中组合出一个字符串,但遇到了一些问题 我创建了一个函数,它接受对象并返回字符串。初始对象如下所示: var testObject = { "Topics": ["Other", "New1"], "Other": ["try this", "this also"] }; 我想让绳子吐出这个: "Topics~~Other|Topics~~New1|Other~~try this|Other~~this also" 以下是我现在拥有的: var t
var testObject = {
"Topics": ["Other", "New1"],
"Other": ["try this", "this also"]
};
我想让绳子吐出这个:
"Topics~~Other|Topics~~New1|Other~~try this|Other~~this also"
以下是我现在拥有的:
var testObject={
“主题”:[“其他”、“新1”],
“其他”:[“试试这个”,“这个也一样”]
};
函数transformObjectToString(activeFilters){
var newString=“”;
var checkFilterGroups=函数(filterTopic){
activeFilters[filterTopic].map(函数(selectedFilter){
var tempString=filterTopic+“~~”+selectedFilter+“|”;
log(“检查字符串”,tempString);
newString.concat(tempString);
});
}
for(activeFilters中的变量filterGroup){
检查过滤器组(过滤器组);
}
返回新闻字符串;
}
log(transformObjectToString(testObject))代码>您应该能够只使用+=
,因为这只是字符串串联。然后,你所要做的就是去掉最后一个字符。这是一个带有更改的JSFIDLE。您应该能够只使用+=
,因为这只是字符串连接。然后,你所要做的就是去掉最后一个字符。这是一个带有更改的JSFIDLE。您可以使用.join(“|”)
var testObject={
“主题”:[“其他”、“新1”],
“其他”:[“试试这个”,“这个也一样”]
};
函数transformObjectToString(activeFilters){
var字符串=[];
var checkFilterGroups=函数(filterTopic){
activeFilters[filterTopic].map(函数(selectedFilter){
var tempString=filterTopic+“~~”+selectedFilter;
strings.push(tempString);
});
}
for(activeFilters中的变量filterGroup){
检查过滤器组(过滤器组);
}
返回字符串。join(“|”);
}
log(transformObjectToString(testObject))
您可以使用.join(“|”)
var testObject={
“主题”:[“其他”、“新1”],
“其他”:[“试试这个”,“这个也一样”]
};
函数transformObjectToString(activeFilters){
var字符串=[];
var checkFilterGroups=函数(filterTopic){
activeFilters[filterTopic].map(函数(selectedFilter){
var tempString=filterTopic+“~~”+selectedFilter;
strings.push(tempString);
});
}
for(activeFilters中的变量filterGroup){
检查过滤器组(过滤器组);
}
返回字符串。join(“|”);
}
log(transformObjectToString(testObject))代码>
这也行得通
编辑:其工作原理是,首先在第一个循环中将newString设置为null,因此在第一个循环中将null+tempstring,然后在第二个循环中将newSting设置为value,value+tempstring,依此类推。最后,您将返回一个变量中包含的字符串
编辑:编辑:
还有@jfriend00在评论中所说的,同上
.concat()返回一个新字符串,因此newString.concat(tempString);不是
完成任何事情都是因为你没有将结果分配给
新闻字符串。记住,Javascript中的字符串是不可变的,所以
修改总是创建一个新字符串
这也行得通
编辑:其工作原理是,首先在第一个循环中将newString设置为null,因此在第一个循环中将null+tempstring,然后在第二个循环中将newSting设置为value,value+tempstring,依此类推。最后,您将返回一个变量中包含的字符串
编辑:编辑:
还有@jfriend00在评论中所说的,同上
.concat()返回一个新字符串,因此newString.concat(tempString);不是
完成任何事情都是因为你没有将结果分配给
新闻字符串。记住,Javascript中的字符串是不可变的,所以
修改总是创建一个新字符串
.concat()
返回一个新字符串,因此newString.concat(tempString)代码>没有完成任何操作,因为您没有将结果分配回newString
。记住,Javascript中的字符串是不可变的,因此任何修改都会创建一个新字符串。感谢所有答案!我也非常感谢来自否决票的反馈,这样我可以为将来改进我的问题。.concat()
返回一个新字符串,因此newString.concat(tempString)代码>没有完成任何操作,因为您没有将结果分配回newString
。记住,Javascript中的字符串是不可变的,因此任何修改都会创建一个新字符串。感谢所有答案!我也很感激来自否决票的反馈,这样我就可以为将来改进我的问题。一些解释会使这成为一个更好的答案。我的意思是解释为什么OP没有起作用。看看我在OP问题下面的评论,了解我在说什么。好的答案解释OP做错了什么(你没有做),然后展示如何修复它。一些解释会使这成为一个更好的答案。我的意思是解释OP为什么不起作用。看看OP问题下面我的评论,了解我在说什么。好的答案解释OP做错了什么(你没有做),然后展示如何修复它。
newString = newString.concat(tempString);