我需要将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
格式?
答案 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)
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;