使用Javascript切片无法获得所需的结果

使用Javascript切片无法获得所需的结果,javascript,jquery,Javascript,Jquery,你好,我是javascript新手。我已经写了这段代码,但是没有得到想要的输出 $('#proceed').on('click', function(){ var txtval = []; $("input[name='a'],select[name='b'],input[name='c'],input[name='d'],input[name='e']").each(function(){ txtval.push($(this).val());

你好,我是javascript新手。我已经写了这段代码,但是没有得到想要的输出

 $('#proceed').on('click', function(){
        var txtval = [];
        $("input[name='a'],select[name='b'],input[name='c'],input[name='d'],input[name='e']").each(function(){
      txtval.push($(this).val());

var oarr=new Array;
for (var i = 0; i < txtval.length;i+=5) {
  oarr[txtval[i]] = txtval.slice(i, i+5);
}
console.log(oarr);
我在控制台上得到了结果

[1:Array[5]]
[2:Array[5]]
但我需要它在下面的方式

[1:'1','kumar','mumbai','aur','500']
[2:'2','kushal','ahm','del','1000']
请告诉我哪里出了问题。提前感谢

您可以试试这个

var arr = ["1", "kumar", "mumbai", "aur",'500','2','kushal','ahm','del','1000'],
    count= arr.length,
    myArr = [];
for(var i = 0; i < count; i += 5){
    var temp = arr.slice(i, i + 5);
    myArr.push(temp);
}
var arr=[“1”、“kumar”、“孟买”、“aur”、“500”、“2”、“kushal”、“ahm”、“del”、“1000”],
计数=arr.length,
myArr=[];
对于(变量i=0;i
这个怎么样

var oarr=new Array;
for (var i = 0; i < txtval.length;i+=5) {
  oarr[txtval[i]] = "'" + txtval.slice(i, i+5).join('\',\'') + "'";
}
var-oarr=新数组;
对于(变量i=0;i
尝试以下方法:

            var arr = ["1", "kumar", "mumbai", "aur",'500','2','kushal','ahm','del','1000'],
    count= arr.length,counter=0,
    myArr = [];
for(var i = 0; i < count; i += 5){
    myArr[counter]=[];
    var temp = arr.slice(i, i + 5).toString();
    myArr[counter].push(temp);
    counter++;
}
console.log(myArr);

可能只是您使用的控制台不会自动扩展阵列。 请尝试以下方法进行测试:

var secondHalf = ["1", "kumar", "mumbai", "aur",'500','2','kushal','ahm','del','1000'];
var firstHalf = secondHalf.splice(0, 5);
console.log(firstHalf.toString(), secondHalf.toString());
像这样试试

var oarr = {};
for(var i=0; i<txtval.length; i+=5) {
  oarr[txtval[i]] = txtval.slice(i, i+5);
}
输出

{"1":["1","kumar","mumbai","aur","500"],"2":["2","kushal","ahm","del","1000"]}
在PHP中:

希望这对你有帮助

$temp = array('1','kumar','mumbai','aur','500','2','kushal','ahm','del','1000');
$final = array();
for($i=0 ; $i<count($temp); $i+=5) {
    $final[$temp[$i]] = array_slice($temp, $i, $i+5);
}
echo(json_encode($final));
$temp=array('1','kumar','mumbai','aur','500','2','kushal','ahm','del','1000');
$final=array();

对于($i=0;$i)是一个无法放在小提琴上的长代码。您需要的不是有效的格式,这将是
['1:1',..
,但不是'
[1:'1','kumar'..
我收到此错误未捕获类型错误:未定义不是一个函数我犯了错误。使用
join()
,而不是
split()
,因为它返回一个数组。[1:“'1'、'kumar'、'mumbai'、'aur'、'500'、'2'、'kushal'、'ahm'、'del'、'1000'”]这是我正在获取的输出数组包含10个元素它是动态生成的,但它可以包含15、20等等。在这种情况下如何处理?我希望第一个值作为索引,就像多维数组一样。我已经更新了答案。它应该提供一个数组数组。我已经尝试了您的代码,但获得了这些值[array[1],array[1]]在控制台中,为什么我会得到这个?当我点击这个[Array[1],Array[1]]时,我得到了这样的0:Array[1]长度:1__proto___:Array[0]这是什么?如何在php中存储这个数组,并在循环中运行它,以便可以发生多次插入我想要您的输出{“1”:[“1”,“kumar”,“mumbai”,“aur”,“500”],“2:[“2”,“kushal”,“ahm”,“del”,“1000”}存储在数组中。通过其键1和2,我希望在循环中运行并插入到数据库中。在数据库的第一行中插入第一个值
console.log(JSON.stringify(oarr));
{"1":["1","kumar","mumbai","aur","500"],"2":["2","kushal","ahm","del","1000"]}
$temp = array('1','kumar','mumbai','aur','500','2','kushal','ahm','del','1000');
$final = array();
for($i=0 ; $i<count($temp); $i+=5) {
    $final[$temp[$i]] = array_slice($temp, $i, $i+5);
}
echo(json_encode($final));