有没有办法用javascript对数组进行切片但不是根据维度的索引而是根据其第j个元素的内容(假设值的唯一性)?
示例:
myArray = [["a", "b", "c"], ["car", "hat", "plate"], ["red", "green", "black"]]
在myArray
上切换0,1
会给出
[["c"],["plate"],["black"]]
并在"black"
上切片应该会得到相同的结果。
我的问题有什么用?比如说我的数组来自解析文件的行,我想要对标题(第一行)进行切片,但是 - 被解析文件的标题(尽管相同)是随机顺序。
由于
答案 0 :(得分:2)
您可以简单地遍历2D数组并在每个数组上调用mimetypes.init()
:
slice(j)
以下是一个示例代码段:
for(item in myArray)
Array[item] = myArray[item].slice(2);
使用var myArray = [["a", "b", "c"], ["car", "hat", "plate"], ["red", "green", "black"]];
for(item in myArray)
myArray[item] = myArray[item].slice(2);
console.log(myArray);
作为参数,通过每个数组并找到这样的元素。当您找到匹配项时,只需致电"black"
即可获得正确的indexOf()
并使用该index
:
2
注意:当有多个var index = "black";
for(item in myArray)
if(myArray[item].indexOf(index) != -1)
index = myArray[item].indexOf(index);
// index = 2
时会出现问题,在这种情况下,"black"
将是index
中的"black"
{} 1}}。
答案 1 :(得分:1)
如果要使用数组元素的值进行搜索,请使用indexOf()。
myArray = [["a", "b", "c"], ["car", "hat", "plate"], ["red", "green", "black"]];
var index = myArray.indexOf("black");
for(value in myArray)
myArray[value] = myArray[value].slice(index);