无法在两个数组

时间:2016-02-26 05:08:35

标签: javascript angularjs

现在我有两个像这样的数组

$arr1 = [{
fullname: 'Foo1',
info: {
   age: 18,
   country: 'HN'
   }
},
{
fullname: 'Foo2',
info: {
   age: 18,
   country: 'HN'
   }
}]
$arr2 = [{
    fullname: 'Bar1',
    info: {
       age: 18,
       country: 'HN'
       }
    },
    {
    fullname: 'Bar2',
    info: {
       age: 18,
       country: 'HN'
       }
    }]

现在我想用$ arr2 [1]交换$ arr1 [0],但它没有用。 看我的代码

temp = $arr1[0];
$arr1[0] = $arr2[1];
$arr2[1] = temp;

当我在set = $ arr2 [1]之前和之后调试$ arr1 [1]时更改,但是当我设置$ arr1 [0] .fullname =" ABC&#34时,它没有更新;,它的更新。我无法解决这个问题。请帮帮我。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

根据您的原始代码段,您没有以基于索引的方式访问数组。 $arr1[1]应为$arr1[0]。以下代码应该可以使用。

temp = $arr1[0];
$arr1[0] = $arr2[1];
$arr2[1] = temp;

从技术上讲,使用临时变量tempVar交换两个变量应该有效。请尝试使用console.log(angular.toJson($arr1));调试变量值

答案 1 :(得分:0)

我尝试了以下代码。它对我来说很好。

$arr1 = [
    {
        fullname: 'Foo1',
        info: {
        age: 18,
        country: 'HN'
        }
    },
{
fullname: 'Foo2',
info: {
   age: 18,
   country: 'HN'
   }
}];
$arr2 = [{
    fullname: 'Bar1',
    info: {
       age: 18,
       country: 'HN'
       }
    },
    {
    fullname: 'Bar2',
    info: {
       age: 18,
       country: 'HN'
       }
    }];
    console.log($arr1[0]);
    console.log($arr2[1]);

    var temp = $arr1[0];
    $arr1[0] = $arr2[1];
    $arr2[1] = temp;

    console.log($arr1[0]);
    console.log($arr2[1]);

<强>输出

sandeep@pc:~/Documents/Angular/Snippets$ node snippets.js
{ fullname: 'Foo1', info: { age: 18, country: 'HN' } }
{ fullname: 'Bar2', info: { age: 18, country: 'HN' } }
{ fullname: 'Bar2', info: { age: 18, country: 'HN' } }
{ fullname: 'Foo1', info: { age: 18, country: 'HN' } }