Javascript 在AngularJS中配对数组的相似对象

Javascript 在AngularJS中配对数组的相似对象,javascript,angularjs,arrays,Javascript,Angularjs,Arrays,我在数组中有一个名为routerList的路由器列表。我想在视图中显示备份路由器旁边的活动路由器。数组中的路由器对象有一个名为HostName的属性,该属性具有locationID_router#u RouterName,例如WA34_R01_ABCABC。阵列中的某个位置是另一个路由器,它是一对名为WA34_R02_ABCABC的路由器。我想重新排列数组,这样当我使用ng时,重复这两个路由器,所有其他匹配的对将彼此相邻。我写了一个函数,它会告诉我名字是否是相同的减1字符,所以R01和R02。在

我在数组中有一个名为routerList的路由器列表。我想在视图中显示备份路由器旁边的活动路由器。数组中的路由器对象有一个名为HostName的属性,该属性具有locationID_router#u RouterName,例如WA34_R01_ABCABC。阵列中的某个位置是另一个路由器,它是一对名为WA34_R02_ABCABC的路由器。我想重新排列数组,这样当我使用ng时,重复这两个路由器,所有其他匹配的对将彼此相邻。我写了一个函数,它会告诉我名字是否是相同的减1字符,所以R01和R02。在这里:

        function stringCompare(word1, word2){
        var differences = 0;
        if(word1 != word2){
            if(word1.length == word2.length){
                for(i=0; i <= word1.length-1; i++){
                    if(word1.charAt(i) != word2.charAt(i)){
                        differences +=1;
                    }
                }
            }
        }
        if(differences == 1){
            return true;
        }else{
            return false;
        };
    };
函数stringCompare(word1、word2){
var差异=0;
if(word1!=word2){
if(word1.length==word2.length){

对于(i=0;i当您最初获得列表或路由器创建需要排序的属性时

比如:

routers.forEach(function(router) {
    router.location: getRouterLocation(router.HostName);
    router.number: getRouterNumber(router.HostName);
    router.name: getRouterName(router.HostName);
});
然后创建函数getRouterLocation、getRouterNumber等,解析出所需的值

function getRouterLocation(hostName) {
    return hostName.substring(0, hostName.indexOf('_');
}

在Javascript中,数组有forEach这样的方法,因此您不必写出for循环。另外,我认为创建一个不同的数据结构来显示可能会更容易。您可以共享HTML来显示列表吗?为什么不直接按升序排列呢?我可能更容易拥有一个类似routers=[{location:'location1',name:'name1',router:{'1',2'}}]用于显示你真是个天才!!谢谢你。我刚刚创建了一个新数组,在主机名的最后一部分进行了勾选,并按名称对数组进行了排序。太简单了!我为什么要花费那么多精力呢?哈哈,很高兴我能帮上忙!:)
function getRouterLocation(hostName) {
    return hostName.substring(0, hostName.indexOf('_');
}