在Javascript中操作键值对到字符串

时间:2016-08-26 00:52:44

标签: javascript arrays

我需要一些帮助来操作值对数组以返回特定布局中的字符串 这是我想要实现的字符串:

'&test=id:1111|na:shoes|ca:shoe&test=id:2222|na:top|ca:tops'

这是我试图操作到我的字符串中的数组

var prodlist = 
[
    {
        name: 'shoe',
        sku: '1111',
        category: 'shoes'
    },
    {
        name: 'top',
        sku: '2222',
        category: 'tops'
    }
]

这是我尝试过的。

我将'deleteme'添加到数组中,以为我可以在以后的脚本中替换。

function(){ 
    var prods = prodlist;
    var array = [];
    for (var i = 0; i < prods.length; i++) {
        var sku = (prods[i]['sku']);
        var name = (prods[i]['name']);
        var cat = (prods[i]['category']);

        array.push({
            deleteme: &test=id,
            id: sku,
            na: name,
            ca: cat,
        });
    }
    var newarray = array.toString();
    return newarray;
}

此函数返回'[object Object],[object Object]'

任何帮助都会非常感激。

由于

2 个答案:

答案 0 :(得分:2)

快捷方便

self.searchBar.barTintColor = UIColor.greyColor()
self.searchBar.tintColor = UIColor.greyColor()
UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()

答案 1 :(得分:1)

这样的事情怎么样?

var prodlist = 
[{name: 'shoe',
sku: '1111',
 category: 'shoes'},
 {name: 'top',
 sku: '2222',
 category: 'tops'}]

var strTemplate = "&test=id:%sku%|na:%name%|ca:%category%"

prodlist.map( function(obj){
   return strTemplate.replace(/%(\w+)%/g, function($1, $2) {
     return obj[$2]
   })
}).join('')

//returns
// "&test=id:1111|na:shoe|ca:shoes&test=id:2222|na:top|ca:tops"

或ES6版本(按照nnnnnn的建议进一步编辑)

prodlist.map( obj => strTemplate.replace(/%(\w+)%/g, ($1, $2) => obj[$2])).join('')