代码:
var finArr = [];
data.forEach(function (line) {
if (line.toString().indexOf(text) !== -1){
finArr= finArr.concat(line);
//console.log( finArr)
}
})
控制台:
[
"59191", "TypeAV - Canada", "Available",
"422129", "TypeAA - Italy", "Available",
"959191", "TypeBB - USA", "N/A",
"6D968C", "TypeAV - Canada", "Available"
]
我的问题是,如何在每个秒值中删除连字符(-
)后的部分?
预期结果是
[
"59191", "TypeAV", "Available",
"422129", "TypeAA", "Available",
"959191", "TypeBB", "N/A",
"6D968C", "TypeAV", "Available"
]
答案 0 :(得分:1)
试试这个
var data = [["59191","TypeAV - Canada","Available"],["422129","TypeAA - Canada","Available"]], result = [];
data.forEach(function(a) {
a.map(function(b) {
b.includes('-') ? result.push(b.split(' - ')[0]) : result.push(b);
});
});
console.log(result);
答案 1 :(得分:1)
您应该使用line[1]
中的line[1] = line[1].split('-')[0]
更改forEach
的值,如下所示。
var data = [["59191", "TypeAV - Canada", "Available"], ["422129", "TypeAA - Canada", "Available"]];
var finArr = [];
data.forEach(function (line) {
if (line.toString().indexOf('-') !== -1) {
line[1] = line[1].split('-')[0].trim();
finArr = finArr.concat(line);
}
})
console.log(finArr)
答案 2 :(得分:1)
最好的办法是map
覆盖嵌套数组,只返回分割的第一个元素。 - '。
var finArr = [];
data.forEach(function (line) {
finArr = finArr.concat(line.map(function (el) {
return el.split(' - ')[0];
}));
});
您也可以将forEach
替换为reduce
。
var finArr = data.reduce(function (p, c) {
return p.concat(c.map(function (el) {
return el.split(' - ')[0];
}));
}, []);
答案 3 :(得分:0)
使用split()
功能并占据上半部分。
element.split(" - ")[0];
实施例
"One thing - two things".split[" - "][0]; // "One thing"
答案 4 :(得分:0)
如果你有一个数组,你可以迭代并将结果更改为拆分的第一个元素。
var array = [["59191", "TypeAV - Canada", "Available"], ["422129", "TypeAA - Italy", "Available"], ["959191", "TypeBB - USA", "N/A"], ["6D968C", "TypeAV - Canada", "Available"]];
array = array.reduce(function (r, a) {
a.forEach(function (b) {
r.push(b.split(' - ')[0]);
});
return r;
}, []);
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');
答案 5 :(得分:0)
另一种方法是使用正则表达式执行此任务
看到你的JSON数据似乎只有第二个值会有一个连字符。因此,使用正则表达式,您可以删除下面的字符串- xyz
。
data = JSON.parse( JSON.stringify(data).replace(/-\w+/g,""));
现在您已删除了不需要的文本,请使用现有的循环逻辑,然后您必须获得所需的输出。