在Javascript中交换一维数组中的列
我试图从一个带分隔符的文本中交换两列,但我得到的最远结果是获取第一列。这就是我想要达到的目标在Javascript中交换一维数组中的列,javascript,jquery,arrays,Javascript,Jquery,Arrays,我试图从一个带分隔符的文本中交换两列,但我得到的最远结果是获取第一列。这就是我想要达到的目标 // Input A1—B1—C1 A2—B2—C2 A3—B3—C3 将第1列与第3列交换。分隔符为“-” var text=$('#input').val().split(“\n”); var分隔符=“-”; var col_1=$('#col_1').val()-1; var col_2=$('#col_2').val()-1; var out=[]; var col_arr=[]; var
// Input
A1—B1—C1
A2—B2—C2
A3—B3—C3
将第1列与第3列交换。分隔符为“-”
var text=$('#input').val().split(“\n”);
var分隔符=“-”;
var col_1=$('#col_1').val()-1;
var col_2=$('#col_2').val()-1;
var out=[];
var col_arr=[];
var col='';
//获取第一列
对于(变量i=0;i
您已经使用split
成功地将文本拆分为其组成部分的数组,现在可以使用reverse
数组函数反转顺序,然后使用join
数组函数和定界符将所有部分重新连接在一起
这将简化for
循环中的代码,从而:
for (var i = 0; i < text.length; i++) {
out[i] = text[i].split(delimiter).reverse().join(delimiter);
}
for(变量i=0;i
您已经使用split
成功地将文本拆分为其组成部分的数组,现在可以使用reverse
数组函数反转顺序,然后使用join
数组函数和定界符将所有部分重新连接在一起
这将简化for
循环中的代码,从而:
for (var i = 0; i < text.length; i++) {
out[i] = text[i].split(delimiter).reverse().join(delimiter);
}
for(变量i=0;i
split()返回一个数组,因此您可以首先将文本数据处理为一个实际数组,以便更轻松地处理它:
function getArrayFromInput(){
var arr = [];
var lines = $('#input').val().split("\n");
for (let line of lines){
let column = line.split('—');
arr.push(column);
}
return arr;
}
//returns [['A1','B1','C1'],['A2','B2','C2'],['A3','B3','C3']]
那么,做你想做的事情会更容易:)
函数交换列(inputArr、col1、col2){
var arr=JSON.parse(JSON.stringify(inputArr));//获取inputArr结构
for(让i=0;isplit()返回一个数组,因此您可以首先将文本数据处理为一个实际数组,以便更容易处理它:
function getArrayFromInput(){
var arr = [];
var lines = $('#input').val().split("\n");
for (let line of lines){
let column = line.split('—');
arr.push(column);
}
return arr;
}
//returns [['A1','B1','C1'],['A2','B2','C2'],['A3','B3','C3']]
那么,做你想做的事情会更容易:)
函数交换列(inputArr、col1、col2){
var arr=JSON.parse(JSON.stringify(inputArr));//获取inputArr结构
for(设i=0;i这是一个带有temp
变量的简单数组。我曾经迭代text
数组,但您可以将其替换为“for…”循环
$(“按钮”)。单击(函数(){
var分隔符=“-”;
var rowdimiter=“\n”;
var text=$('#input').val()
.trim()//删除文本前后的空白
.split(行分隔符);
var col_1=$('#col_1').val()-1;
var col_2=$('#col_2').val()-1;
//检查列数是否介于0和列数之间
//并通知用户,如果他们的
var result=text.map(函数(行){
var arr=row.split(分隔符);
var temp=arr[col_1];//缓存col_1的值
arr[col_1]=arr[col_2];//将col_2 1的值设置为第2列的值
arr[col_2]=temp;//将col_2的值设置为temp的值
返回arr.join(分隔符);
}).join(行分隔符);
$('#output').val(结果);
});
textarea{
宽度:100%;
高度:120px
}
钮扣{
利润率:10px 0
}
将col与col互换#
A1-B1-C1-D1
A2-B2-C2-D2
A3-B3-C3-D3
交换
这是一个带有temp
变量的简单数组。我曾经迭代文本
数组,但您可以将其替换为“for…”循环
$(“按钮”)。单击(函数(){
var分隔符=“-”;
var rowdimiter=“\n”;
var text=$('#input').val()
.trim()//删除文本前后的空白
.split(行分隔符);
var col_1=$('#col_1').val()-1;
var col_2=$('#col_2').val()-1;
//检查列数是否介于0和列数之间
//并通知用户,如果他们的
var result=text.map(函数(行){
var arr=row.split(分隔符);
var temp=arr[col_1];//缓存col_1的值
arr[col_1]=arr[col_2];//将col_2 1的值设置为第2列的值
arr[col_2]=temp;//将col_2的值设置为temp的值
返回arr.join(分隔符);
}).join(行分隔符);
$('#output').val(结果);
});
textarea{
宽度:100%;
高度:120px
}
钮扣{
利润率:10px 0
}
将col与col互换#
A1-B1-C1-D1
A2-B2-C2-D2
A3-B3-C3-D3
交换
function swapColumns(inputArr, col1, col2){
var arr = JSON.parse(JSON.stringify(inputArr)); //get inputArr structure
for(let i = 0; i<arr.length; i++){
//swap the values
arr[i][col1] = inputArr[i][col2];
arr[i][col2] = inputArr[i][col1];
}
return arr;
}
//return your array with swaped columns