spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
for (var i = 0; i < spt_curr_A.length; i++){
sl = spt_curr_A[i].split("|");
console.log("Split: " + sl);
}
一旦拆分,我只希望将带有“ N
”的内容显示为sl
。我尝试过几种不走运的方法。
答案 0 :(得分:5)
数组具有一些方法,这意味着您不必总是手动遍历它们即可从中获取数据。 map
和filter
之类的方法返回一个数组,因此可以链接在一起。
以这种方式使用数组可使代码更易于阅读和调整。在下面的示例中,我使用map
和filter
来获取仅对我们有用的数据。然后,forEach
允许我们迭代其余项目并将其记录到控制台。
如果您想了解有关数组方法的更多信息,this article是一个不错的起点。
您可以对原始代码进行调整以进行类似的检查:
spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
for (var i = 0; i < spt_curr_A.length; i++){
sl = spt_curr_A[i].split("|");
if (sl[2] === 'N') {
console.log("Split: " + sl);
}
}
但是您可能会发现使用map
和filter
而不是for循环的代码更容易使用:
spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
spt_curr_A
.map(item => item.split('|'))
.filter(item => item[2] === 'N')
.forEach(item => console.log(`Split ${item}`))
答案 1 :(得分:1)
选项1:
遍历数组,最后使用str.endsWidth()
检查数组元素是否包含|N
。下面是工作代码:
var spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"];
var new_array = [];
for (var i in spt_curr_A) {
if (spt_curr_A[i].endsWith("|N")) {
new_array.push(spt_curr_A[i])
}
}
console.log(new_array);
选项2:
您可以检查索引sl
的{{1}}数组element
中的2
是否为N
:
var spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
for (var i = 0; i < spt_curr_A.length; i++) {
sl = spt_curr_A[i].split("|");
if (sl[2] === "N") {
console.log("Split: " + sl);
}
}
答案 2 :(得分:0)
一种替代方法是使用函数Array.prototype.filter
。
假设每个元素都有三个部分(两个管道)。
let spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"],
fn = (s) => s.split("|").pop() === "N",
filtered = spt_curr_A.filter(fn);
console.log(filtered);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 3 :(得分:0)
关于Array.includes()呢?
spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
for (var i = 0; i < spt_curr_A.length; i++){
sl = spt_curr_A[i].split("|");
if(sl.includes("N"))
{
console.log("Split: " + sl);
}
}
答案 4 :(得分:0)
首先进行过滤,然后您可以进行任何操作
let spt_curr_A = ["acb|123|N", "bca|234|N", "dcs_abc|134|Y", "abc|432|N", "def_bca|243|Y"]
spt_curr_A = spt_curr_A.filter((str) => {
return str.indexOf('|N') !== -1
});
spt_curr_A= spt_curr_A.splice("|")
console.log(spt_curr_A)