0

我有以下数据,我想知道如何以这种格式将 email1 与 password1 和 email2 与 password2 匹配:密码。如果可以,我可以这样做object[0] +":"+ object[1]object[2] +":"+ object[3]但是当对象填充了 10 个或更多项目时,此方法效率不高。我怎样才能用循环做到这一点?

我正在使用以下代码来创建结构:

$("#accounts").on("submit", function(event) {
    event.preventDefault();
    var form = $(this).serializeArray();
});

在此处输入图像描述

4

3 回答 3

2

您可以在 for 循环中更改增量。尝试:

var results = [];
For(var i = 0; i < vals.length; i += 2) {
    results.push( { vals[i].value: vals[i+1].value });
}
于 2013-09-20T06:45:50.740 回答
0
//
Array.prototype.e = Array.prototype.forEach;
function pair( arr ) {
    var len = arr.length;
    if ( len ) {
        do {
            arr.push( arr.splice( 0, 2 ) );
        } while ( ( len -= 2 ) >= 2 );
    }
    return arr;
};
var yourData = [
                { name:"email1", value:"321" },
                { name:"pw1",    value:"123" },
                { name:"email2", value:"qwe" },
                { name:"pw2",    value:"ewq" },
                { name:"email3", value:"234" },
                { name:"pw3",    value:"432" }
               ],
    pairs    = {};
pair( yourData )
.e(
    function ( P ) {
        pairs[ P[0].name ] = P[1].name;
    }
);
console.log( pairs );
// Object { email1="pw1", email2="pw2", email3="pw4"}
//
于 2013-09-20T06:44:46.750 回答
0

您可以尝试增加循环步骤。

参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Statements?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FStatements#for_Statement

代码:

var testMe=new Array({"name":"em1"},{"pwd":"pwd1"},{"name":"em2"},{"pwd":"em2"});
console.log(testMe)
for (var i = 0; i < testMe.length; i+=2) {
  console.log(testMe[i].name+"-->"+testMe[i+1].pwd)
}

演示:http: //jsfiddle.net/IrvinDominin/qbVwH/

于 2013-09-20T06:50:13.167 回答