Javascript 用连字符分隔匹配值

Javascript 用连字符分隔匹配值,javascript,jquery,json,Javascript,Jquery,Json,代码: 控制台: var finArr = []; data.forEach(function (line) { if (line.toString().indexOf(text) !== -1){ finArr= finArr.concat(line); //console.log( finArr) } }) 我的问题是,如何删除每秒值中连字符(-)后面的部分 预期的结果是 [ "59191", "TypeAV - Canada", "Availa

代码:

控制台:

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"
]
使用
split()

[
"59191", "TypeAV", "Available", 
"422129", "TypeAA", "Available", 
"959191", "TypeBB", "N/A", 
"6D968C", "TypeAV", "Available"
]
范例

element.split(" - ")[0];
使用
split()

[
"59191", "TypeAV", "Available", 
"422129", "TypeAA", "Available", 
"959191", "TypeBB", "N/A", 
"6D968C", "TypeAV", "Available"
]
范例

element.split(" - ")[0];

如果您有一个数组,您可以迭代并将结果更改为拆分的第一个元素

var数组=[“59191”、“TypeAV-加拿大”、“可用”]、[“422129”、“TypeAA-意大利”、“可用”]、[“959191”、“TypeBB-美国”、“不适用”]、[“6D968C”、“TypeAV-加拿大”、“可用”];
array=array.reduce(函数(r,a){
a、 forEach(函数(b){
r、 推(b.split('-')[0]);
});
返回r;
}, []);

write(“”+JSON.stringify(数组,0,4)+“”)如果您有一个数组,您可以迭代并将结果更改为拆分的第一个元素

var数组=[“59191”、“TypeAV-加拿大”、“可用”]、[“422129”、“TypeAA-意大利”、“可用”]、[“959191”、“TypeBB-美国”、“不适用”]、[“6D968C”、“TypeAV-加拿大”、“可用”];
array=array.reduce(函数(r,a){
a、 forEach(函数(b){
r、 推(b.split('-')[0]);
});
返回r;
}, []);
write(“”+JSON.stringify(数组,0,4)+“”)试试这个

var数据=[[“59191”、“TypeAV-加拿大”、“可用”]、[“422129”、“TypeAA-加拿大”、“可用”]],结果=[];
data.forEach(函数(a){
a、 地图(功能(b){
b、 包括('-')?结果.推送(b.split('-')[0]):结果.推送(b);
});
});
控制台日志(结果)试试这个

var数据=[[“59191”、“TypeAV-加拿大”、“可用”]、[“422129”、“TypeAA-加拿大”、“可用”]],结果=[];
data.forEach(函数(a){
a、 地图(功能(b){
b、 包括('-')?结果.推送(b.split('-')[0]):结果.推送(b);
});
});

控制台日志(结果)
您应该使用
行[1]=行[1]更改
行[1]
的值。在
forEach
中拆分('-')[0]
,如下所示

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)

您应该使用
line[1]=line[1]更改
line[1]
的值。在
forEach
中拆分('-')[0]
,如下所示

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)

最好的方法是将
映射到嵌套数组上,并只返回'-'上拆分的第一个元素

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];
  }));
}, []);

您的最佳选择是
映射嵌套数组,并仅返回'-'上拆分的第一个元素

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];
  }));
}, []);

另一种方法是使用正则表达式执行此任务

看到JSON数据,似乎只有第二个值会有连字符。因此,使用regex可以删除下面的字符串
-xyz
ike

data=JSON.parse(JSON.stringify(data.replace)(/-\w+/g,”)


现在您已经删除了不需要的文本,请使用现有的循环逻辑执行此操作,并且必须获得所需的输出。

另一种方法是使用正则表达式执行此任务

看到JSON数据,似乎只有第二个值会有连字符。因此,使用regex可以删除下面的字符串
-xyz
ike

data=JSON.parse(JSON.stringify(data.replace)(/-\w+/g,”)


现在您已经删除了不需要的文本,请使用现有的循环逻辑执行此操作,您必须获得所需的输出。

谢谢。我知道拆分(“-”[0]
是一种方法。但是在
finArr.concat(line)中我该如何做呢+10那一行仅仅是一个字符串吗?如果是,则用逗号分割该字符串-
var splittedLine=line.split[“,”]
。然后concat splittedLine[0],splittedLine[1]。split(“-”[0]和splitedLine[2]”一件事-两件事。split[0]
是“一件事”是错误的。感谢您的注意。我知道拆分(“-”[0]
是一种方法。但是在
finArr.concat(line)中我该如何做呢+10那一行仅仅是一个字符串吗?如果是,则用逗号分割该字符串-
var splittedLine=line.split[“,”]
。然后concat splittedLine[0],splittedLine[1]。split(“-”[0]和splitedLine[2]”一件事-两件事。split[0]
是“一件事”是错误的。谢谢你注意到AndyNina,看看预期的输出。@andy,谢谢你,我想,我遗漏了什么:)请看编辑。Nina,看看预期的输出。@andy,谢谢你,我想,我遗漏了一些东西:)请查看编辑。谢谢。运行代码不显示结果。为什么?谢谢。运行代码不显示结果。为什么呢?