循环访问对象以匹配用户名,如果找到则添加1

时间:2014-03-06 13:49:05

标签: javascript json string loops

检查匹配的用户名...

我正在遍历json对象数据。我正在检查json对象id un中是否已存在字符串变量un。如果它确实将1添加到字符串变量un。

var un = "John"

for (var i=0;i<datam.length;i++){
    if(datam[i].un == un){
        un = un+1 //I know this is wrong what's the correct way? :)
        alert(un) //John1 if John1 exist John2 etc..
    }
}

2 个答案:

答案 0 :(得分:0)

以下是如何使您的所有用户名唯一。

var datam = [
        { un: 'John' },
        { un: 'John' },
        { un: 'John' },
        { un: 'Foo' }
    ],
    unCount = {};

datam.forEach(function (user, i) {
    var un = user.un;

    if (unCount[un]) user.un += unCount[un]++;
    else unCount[un] = 1;
});

datam[0].un; // John
datam[1].un; // John1

答案 1 :(得分:0)

找到解决方案:

var j = 0
var testname = un

    for (var i=0;i<datam.length;i++){

         if(datam[i].un == testname){
            j++
            testname = un+j.toString();
            i = 0 //restart the loop and see if John(1,2,3..) is in datam.un
            }

        }
    alert(testname)