不知道我是否要重复这个问题或概念。

如何将以下示例转换为以下字符串格式(可能不是正确的JSON格式)

[{ "Name":"Test1","check":"true},{ "Name":"Test2","check":"true},{ "Name":"Test3","check":"false"}]


带追加的字符串格式-表示false

预期输出:

"Test1","Test2","-Test3"


我尝试了级联,但总是以

"Test1,Test2-Test3"


但是我正在寻找3个用逗号分隔的单独字符串。任何提示都会有所帮助

最佳答案

您可以简单地遍历数组并以所需的格式收集对象:



var obj = [{
        "Name" : "Test1",
        "check" : true
    }, {
        "Name" : "Test2",
        "check" : true
    }, {
        "Name" : "Test3",
        "check" : false
    }
];

var result = obj.map(function(x) {
  return x.check ? x.Name : "-" + x.Name;
});

document.body.innerHTML = JSON.stringify(result);





请注意,我更改了JSON的格式以使其有效。

万一您实际上有一个字符串truefalse,并且您不能更改它,则可以简单地将它作为字符串进行比较:



var obj = [{
        "Name" : "Test1",
        "check" : "true"
    }, {
        "Name" : "Test2",
        "check" : "true"
    }, {
        "Name" : "Test3",
        "check" : "false"
    }
];

var result = obj.map(function(x) {
  return x.check === 'true' ? x.Name : "-" + x.Name;
});

document.body.innerHTML = JSON.stringify(result);

关于javascript - JSON数组对象到字符串逻辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33492778/

10-17 02:37