簡體   English   中英

在Javascript中操作鍵值對到字符串

[英]Manipulate a key value pair to a string in Javascript

我需要一些幫助來操作值對數組以返回特定布局中的字符串這是我想要實現的字符串:

'&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]'

任何幫助將非常感激。

謝謝

快捷方便

function prods() {
     var prods = prodlist;
     var array = [];
     for (let product of prods)
        array.push('test=id:' + product.sku+ '|na:' + product.name + '|ca:' + product.category);
     return '&' + array.join('&');
}

怎么樣這樣的?

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('')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM