使用javascript从管道分隔的字符串中提取键和值

时间:2014-12-22 10:55:13

标签: javascript

我有一个以管道分隔格式的字符串,如下所示

var request = "Country : India|Location : Mumbai|Attachment:Photo.png";

当我进行拆分时,它会将以下内容作为输出

var p = request.split("|");

(
"Country : India",
"Location : Mumbai",
"Attachment : Photo.png"
)

如何提取密钥及其各自的值? 整个值都在引号中。 请帮忙

3 个答案:

答案 0 :(得分:4)

您可以在Array.reducerequest.split("|")并返回基于键值的对象。

var obj = request.split("|").reduce(function(o, c){
   var arr = c.split(":");
   return o[arr[0].trim()] = arr[1].trim(), o; // comma operator
},{});

当您按console.log(obj)进行记录时,您将获得

{ Country: "India", Location: "Mumbai", Attachment: "Photo.png" }

答案 1 :(得分:0)

你去了:

function getKeyvalue() {
            var request = "Country : India|Location : Mumbai|Attachment:Photo.png";
            var arr = request.split("|");
            for (var i in arr) {
                var newarr = arr[i].split(":");
                var key = newarr[0]; // key 
                var value = newarr[1]; // value
            }
        }

答案 2 :(得分:0)

您可以使用该代码存储key中的所有密钥和value中的值 可以使用相同的索引

获取密钥和值
var request = "Country : India|Location : Mumbai|Attachment:Photo.png";

var p = request.split("|");
var key = [];
var value = [];

for(var i=0; i<p.length; i++){
  var pmap = p[i].split(":");
  key = pmap[0];
  value = pmap[1];
}

将此作为替代方案发布。 使用地图将是一个更好的选择。