我正在尝试创建 2 个空白对象,运行一个 php 循环来填充其中 1 个对象,然后将这些对象扩展在一起......最终创建 1 个包含许多对象的对象。
这是逻辑/代码(注意,服务器的东西是专有的,但它运行 php 并且工作正常):
var allUsers = {};
var singleUser = {};
$(document).ready(function(){
<fm:UserList
fields="id,firstname,lastname,geo_latitude,geo_longitude,meta,externalids"
>
<fm:Loop>
singleUser = {
'index' : '{$loop.index}',
'id' : '{$user.id}',
'firstname' : '{$user.firstname}',
'lastname' : '{$user.lastname}',
'geo_latitude' : '{$user.geo_latitude}',
'geo_longitude' : '{$user.geo_longitude}',
'company' : '{$user.meta.company}',
'twitter' : '{$user.meta.twitter}',
'externalprovider' : '{$user.externalids.0.external_id_provider}',
'externalid' : '{$user.externalids.0.external_parsed_id}'
}
/* Merge singleUser into allUsers */
$.extend(allUsers,singleUser);
</fm:Loop>
</fm:UserList>
console.log(allUsers);
});
以下是 get 放在页面上的内容:
var allUsers = {};
var setUser = {};
$(document).ready(function(){
setUser = {
'index' : '0',
'id' : '1930039',
'firstname' : 'Devo',
'lastname' : 'Brown',
'geo_latitude' : '-46.81610453612681',
'geo_longitude' : '-70.6640625',
'company' : 'Filemobile',
'twitter' : 'devinbrownca',
'externalprovider' : '',
'externalid' : ''
}
/* Merge setUser into passed allUsers */
$.extend(allUsers,setUser);
setUser = {
'index' : '1',
'id' : '1930025',
'firstname' : 'Aidan',
'lastname' : 'Roach',
'geo_latitude' : '51.032184898096396',
'geo_longitude' : '-108.6328125',
'company' : '',
'twitter' : '',
'externalprovider' : '',
'externalid' : ''
}
/* Merge setUser into passed allUsers */
$.extend(allUsers,setUser);
setUser = {
'index' : '2',
'id' : '1930024',
'firstname' : 'Devin',
'lastname' : 'Brown ',
'geo_latitude' : '42.89743256946478',
'geo_longitude' : '-101.6015625',
'company' : '',
'twitter' : '',
'externalprovider' : '',
'externalid' : ''
}
/* Merge setUser into passed allUsers */
$.extend(allUsers,setUser);
console.log(allUsers);
});
在函数结束时,控制台仅记录一个对象,即最后创建的对象。
知道我做错了什么吗?
最佳答案
$.extend
正在将一个对象的属性复制到另一个对象。
我猜你需要一个数组
var allUsers = [];
/* Push singleUser into allUsers */
allUsers.push(singleUser);
关于javascript - $.extend() = 与服务器循环一起使用时不扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645901/