Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 使用嵌套数组转换逗号分隔字符串中的JSON_Javascript_Jquery_Arrays_Json_String - Fatal编程技术网

Javascript 使用嵌套数组转换逗号分隔字符串中的JSON

Javascript 使用嵌套数组转换逗号分隔字符串中的JSON,javascript,jquery,arrays,json,string,Javascript,Jquery,Arrays,Json,String,我知道有很多例子,但我仍然不能让它工作。我有这样一个JSON: {"domiciles":[{"country":"AF"},{"country":"AX"},{"country":"AL"}],"investor":[{"type":"ii"},{"type":"pi"}]} 存储在sessionStorage.getItem(“profile”)中 如何转换为两个逗号分隔的字符串?像 AF,AX,AL ii,pi 失败的尝试: var dataResidence = sessionSto

我知道有很多例子,但我仍然不能让它工作。我有这样一个JSON:

{"domiciles":[{"country":"AF"},{"country":"AX"},{"country":"AL"}],"investor":[{"type":"ii"},{"type":"pi"}]}
存储在sessionStorage.getItem(“profile”)中

如何转换为两个逗号分隔的字符串?像

AF,AX,AL
ii,pi
失败的尝试:

var dataResidence = sessionStorage.getItem("profile");
var resultResidence = dataResidence.map(function(val) {
  return val.country;
}).join(',');
console.log(resultResidence);
或:

var newString=“”;
对于(变量i=0;i
您需要解析从
会话存储中获取的字符串,然后您可以映射并加入:

var profile='{“住所”:[{“国家”:“AF”},{“国家”:“AX”},{“国家”:“AL”}],“投资者”:[{“类型”:“ii”},{“类型”:“pi”}]};//sessionStorage.getItem(“概要”);
var dataResidence=JSON.parse(profile);
函数mapAndJoin(arr,键){
返回arr.map(函数(o){
返回o[键];
}).join();
}
var domiciles=mapAndJoin(dataResidence.domiciles,'country');
var investor=mapAndJoin(dataResidence.investor,'type');
控制台日志(住所);
控制台日志(投资者)一种方法

var obj={“住所”:[{“国家”:“AF”},{“国家”:“AX”},{“国家”:“AL”}],“投资者”:[{“类型”:“ii”},{“类型”:“pi”}]};
log(JSON.stringify(obj));
var国家=对象住所;
var-str='';

for(i=0;我希望得到这方面的帮助!我在漫游…我还看到了您的第一个版本(没有mapAndJoin())…正在通过mapAndJoin()这样的通用函数来实现在多个输出的情况下进行更好的练习…或者有更多的pro参数吗?这是-不要重复你自己。如果有几个案例使用相同的代码,请将其抽象为一个方法。现在,如果我想将分隔符从逗号改为斜杠,我可以在一个地方进行更改。此外,处理新案例非常简单,只需c我还可以测试抽象,以确保它能够处理边缘情况,例如空数组、非数组、找不到键等。很高兴知道…感谢提供更多信息!
var newString = "";
for(var i=0; i< dataResidence.domiciles.length;i++){
    newString += userDefinedSeries.country[i];
    newString += ",";
}
console.log(newString);