好吧,我知道这对某些人来说可能很简单,但是我想这几个小时并且直到现在都没有成功。
如果我有这个数组中的数据
var tDataValues = {
id: "TenantID",
text: "FullName",
username: "Username",
cnic: 'CNIC'
}
我将此变量发送到函数
commonSelect2Templating(selector,url,tDataValues,minInputLength,placeholder);
注意:我正在使用Jquery Select2(分享,如果它可以帮助我的问题理解。)
然后在结果部分的那个函数中我试图分配值
results: function(data, page) {
var newData = [];
var length = data.length + 1;
for(var i = 0; i<=length; i++){
}
$.each(data, function (index,value) {
newData.push({
id: value[tDataValues.id], //id part present in data
text: value[tDataValues.text] //string to be displayed
});
});
return { results: newData };
}
这是来自服务器的数据:
[{"TenantID":"13","FullName":"Rameez Hassana","Username":"Rameez","CNIC":"16141-6321136-1"},{"TenantID":"14","FullName":"Syed Haider Hassan","Username":"pakistanihaider","CNIC":"17301-5856870-1"},{"TenantID":"15","FullName":"Demo Tenant No 1","Username":"tn1","CNIC":"15165-6156685-6"}]
来到问题: 现在所有的魔法都发生在这里。
$.each(data, function (index,value) {
newData.push({
id: value[tDataValues.id], //id part present in data
text: value[tDataValues.text] //string to be displayed
});
它告诉代码是id和文本,它工作得非常好。
现在这里的问题是我想要做的功能是select2的Common Function,
如果我有更多来自db的值,就像现在我从数据库获取如何进行循环并将这些值逐个设置到其正确的上下文。
例如
tDataValues
拥有fieldName cnic
,服务器正在发送fieldName CNIC
那么如何制作一个循环,如果两者都存在,那么它应该简单地分配,
我可以手动执行此操作
newData.push({
cnic: value[tDataValues.cnic]
});
但是像这样它不能成为一种常见的功能。
我不能简单地说明如何实现这一点。确实试了几个小时但到目前为止没有成功:(
答案 0 :(得分:2)
尝试:
for(var key in tDataValues) {
newData.push({ key: value[tDataValues[key]]});
}
<强>更新强>
然后首先创建一个对象并将其推送到数组:
for(var key in tDataValues) {
var obj = {};
obj[key] = value[tDataValues[key]];
newData.push(obj);
}
答案 1 :(得分:1)
检查一下,希望有所帮助
var mainData =[{"TenantID":"13","FullName":"Rameez Hassana","Username":"Rameez","CNIC":"16141-6321136-1"},{"TenantID":"14","FullName":"Syed Haider Hassan","Username":"pakistanihaider","CNIC":"17301-5856870-1"},{"TenantID":"15","FullName":"Demo Tenant No 1","Username":"tn1","CNIC":"15165-6156685-6"}];
var newData =[];
for(var i =0;i<mainData.length;i++){
for(var key in mainData[i]) {
var tempObj ={};
tempObj[key] = mainData[i][key];
newData.push(tempObj);
}
}
OUTPUT IS:[{“TenantID”:“13”},{“FullName”:“Rameez Hassana”},{“Username”:“Rameez”},{“CNIC”:“16141-6321136-1” },{“TenantID”:“14”},{“FullName”:“Syed Haider Hassan”},{“Username”:“pakistanihaider”},{“CNIC”:“17301-5856870-1”},{“ TenantID“:”15“},{”FullName“:”Demo Tenant No 1“},{”Username“:”tn1“},{”CNIC“:”15165-6156685-6“}