Javascript:将字符串组合成数组

时间:2017-04-13 21:28:25

标签: javascript arrays zapier

我需要将3个字符串转换为单个数组,从那里我想过滤掉type: "bundle"

我需要注意的是,我正在使用Zapier的Javascript代码,并且他们的javascript库对我可以使用的函数有点限制,但是这是我到目前为止的工作,如果我硬编码{{ 1}}。我只是从3个给定字符串创建itemArray时遇到了问题:

的字符串:

itemArray

我需要弄清楚如何使用javascript将以上3个字符串转换为以下数组:

var type  = 'bundle, simple, simple';
var name  = 'Product1, Product2, Product3';
var price = '1.99, 2.99, 3.99';

从那里我想过滤掉var itemArray = [ {type:"bundle", info: {name: "Product1", price: "1.99"}}, {type:"simple", info: {name: "Product2", price: "2.99"}}, {type:"simple", info: {name: "Product3", price: "3.99"}}]; 产品类型并仅返回bundle产品类型,我正在使用以下代码执行此操作:

simple

所以我的问题是,如何使用我开始使用的3个字符串并使用javascript将其转换为// Using a for loop var filtered = []; for (var i = 0; i < itemArray.length; ++i) { var item = itemArray[i]; if (item.type == 'simple') filtered.push(item); } return {filtered}; //this returns just the 2 simple product type arrays 格式?

2 个答案:

答案 0 :(得分:1)

首先将字符串转换为所需三个字符串的数组。然后在for循环中,您可以以所需的任何(相同)格式推送它们,因为所有3个列表各有3个元素。然后你可以使用过滤器功能轻松过滤出束元素,如下所示。 以下代码段将打印出项目数组和您请求的过滤值

var types  = 'bundle, simple, simple'.split(", ");
var names  = 'Product1, Product2, Product3'.split(", ");
var prices = '1.99, 2.99, 3.99'.split(", ");
var itemArray = [];
for(var i = 0; i < 3; i++){
    itemArray.push({"type": types[i], "info":{"name": names[i], "price": prices[i]}}); 
}
console.log(itemArray);

var filtered = [];
for (var i = 0; i < itemArray.length; ++i) {
    var item = itemArray[i];
    if (item["type"] === 'simple') filtered.push(item);
}

console.log({filtered});

答案 1 :(得分:1)

&#13;
&#13;
var type  = 'bundle, simple, simple'.split(', '),          // split the
    nameArr  = 'Product1, Product2, Product3'.split(', '), // strings to 
    priceArr = '1.99, 2.99, 3.99'.split(', '),             // get the arrays
    
    res = type.map((v,i) => Object.assign({}, {type: v, info: {name: nameArr[i], price: priceArr[i]}})), //map the objects with specified keys and values from given arrays
    result = res.filter(v => v.type != 'bundle'); //remove the `bundle` type elements
    
    console.log(result);
&#13;
&#13;
&#13;