有沒有辦法通過引用而不是按值來設置數組元素?JavaScript通過引用或按值賦值數組元素
例如,該方法通過值將數組元素:
方法1
var pushes = [2,1]
for(var i=0; i<pushes.length; i++)
{
vm.allEmployeesOnJob[i] = vm.allEmployees[pushes[i]];
}
並且該方法通過引用將數組元素:
方法2
var pushes = [2,1]
vm.allEmployeesOnJob = [
vm.allEmployees[2],
vm.allEmployees[1]
];
我的用例:
我使用角自舉-duallistbox並且爲了正確初始化兩個列表框,將「NG-模型」陣列必須通過參考引用了「NG-選項」的數組元素。這是由於我讀過的解釋中的「select」DOM元素的行爲。我知道第二個是通過引用進行設置的原因是因爲列表框使用該方法正確更新,並且使用第一種方法不能正確更新。
有什麼區別?
有沒有辦法以編程方式將數組元素明確地通過引用設置爲另一個數組的元素?
編輯:
vm.allEmployees是僱員對象的數組。 vm.allEmployees的
內容:
[ {
"employeeId":1,
"firstName":"Bill",
"lastName":"Test",
"email":null,
"phoneNumber":null,
"street":"1234 Sesame",
"city":"New York City",
"state":"New York",
"zip":"34555",
"activeFlag":true,
"homeLocationId":2,
"homeLocation":{
"locationId":2,
"customerId":2,
},
"displayName":"Bill Test - Newaygo" },
{
"employeeId":2,
"firstName":"Bob",
"lastName":"Test",
"email":null,
"phoneNumber":null,
"street":"1234 Sesame",
"city":"New York City",
"state":"New York",
"zip":"34555",
"activeFlag":true,
"homeLocationId":2,
"homeLocation":{
"locationId":2,
"customerId":2,
},
"displayName":"Bob Test - Newaygo" },
{
"employeeId":4,
"firstName":"John",
"lastName":"Doe",
"email":"[email protected]",
"street":"1234 Sesame St",
"city":"New York City",
"state":"New York",
"zip":"34555",
"activeFlag":true,
"homeLocationId":2,
"homeLocation":{
"locationId":2,
"customerId":2,
},
"displayName":"John Doe - Newaygo" },
{
"employeeId":5,
"firstName":"Bill",
"lastName":"Peterson",
"email":"b[email protected]",
"street":"1234 test",
"city":"test city",
"state":"Maine",
"zip":"298379283",
"activeFlag":false,
"homeLocationId":2,
"homeLocation":{
"locationId":2,
"customerId":2,
},
"displayName":"Bill Peterson - Newaygo" },
{
"employeeId":6,
"firstName":"Jim",
"lastName":"Super",
"email":"[email protected]",
"phoneNumber":"459-456-4455",
"street":"1234 Sesame St",
"city":"New York City",
"state":"New York",
"zip":"34555",
"activeFlag":true,
"homeLocationId":2,
"homeLocation":{
"locationId":2,
"customerId":2,
},
"displayName":"Jim Super - Newaygo" } ]
這沒有什麼用JavaScript本身,但更多與AngularJS的「ng-model」如何看待它的價值有關。我建議[編輯]您的問題和標題,以更清楚地表明您使用AngularJS。你也可以展示你如何綁定你的'ng-model'和'ng-options'這兩個選擇。 –
關於角部@MikeMcCaughan的好處。然而,問題的JavaScript部分是我的問題的重大關注。斯科特的回答下面回答了這個問題,所以我想我可能會把這個問題的角度部分留給另一篇文章,如果我不能得到這個工作。 –