Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中创建对象的字符串_Javascript - Fatal编程技术网

在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

我试图从一个JavaScript对象中组合出一个字符串,但遇到了一些问题

我创建了一个函数,它接受对象并返回字符串。初始对象如下所示:

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);