所以我有这个字符串:
...
11007,"test,Biovegan,"50g",4005394284292,7.42,da
11008,"test4",Biovegan,"55g",40042,8.42,da
...
它代表某些产品的数据,第一个元素是代码,第二个是名称,第三个是供应商,第四个是重量,第五个是条形码,第六个是价格,第七个是一个随机布尔值。
我想使用javascript字符串函数获取价格,但是我可以找到合适的方法。
我想知道我有条形码,所以想得到价格,所以如果我要条形码的价格:4005394284292
,它将返回7.42,如果我提供条形码:40042
,它将返回返回8.42
答案 0 :(得分:1)
var bodyArray = bodyHTML.split(',')
var codIndex = bodyArray.indexOf(barcode)
var price = bodyArray[codIndex + 1]
答案 1 :(得分:1)
我能想到的最整洁的解决方案是创建具有以下格式的对象:
{
"4005394284292": "7.42",
"40042": "8.42"
....
}
因此您只能使用dbMap [barcode]
来获取价格
const data = `11007,"test,Biovegan,"50g",4005394284292,7.42,da
11008,"test4",Biovegan,"55g",40042,8.42,da`
let lines = data.split('\n')
let arr = lines.map(line => line.split(','))
let dbMap = arr.reduce((db, e) => {
db[e[4]] = e[5];
return db;
}, {})
console.log(dbMap)
答案 2 :(得分:0)
您可以使用JavaScript中的split()
函数使用逗号作为分隔符来分隔字符串。下面的功能getProductPrice()
可以按照您的要求进行操作,您只需传递您想要价格的产品的条形码,然后它将返回结果。 products
数组包含所有产品的列表。
let products = [
'11007,"test,Biovegan,"50g",4005394284292,7.42,da',
'11008,"test4",Biovegan,"55g",40042,8.42,da',
];
let barcodeToFind = '4005394284292';
function getProductPrice(barcode) {
let foundProduct = false;
for (var i = 0; i < products.length; i++) {
let productData = products[i].split(","); // Split the data by the comma as a delimiter.
if(productData[4] === barcode) {
foundProduct = productData[5];
}
}
return foundProduct;
}
console.log(getProductPrice(barcodeToFind));
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <!-- JQuery -->
答案 3 :(得分:0)
const str = "11007,test,Biovegan,50g,4005394284292,7.42,da".split(",").splice(4, 2);
const str2 = "11008,test4,Biovegan,55g,40042,8.42,da".split(",").splice(4, 2);
const codes = [
str,
str2
]
function getPrice(barcode) {
for(let i = 0; i < codes.length; ++i) {
if(codes[i][0] == barcode) {
return codes[i][1];
}
}
return false;
}
getPrice(40042);