将两个 JSON 对象与数组对象连接起来
joining two json object with array object in it
响应存储在data1中
ad.display(sha.c function(data1) {
dataFirst(data1);
});
响应存储在数据中2
ad.display(sha.c, function(data2) {
dataSecond(data2);
superDisplay(concatData);
});
function dataFirst(data1){
return data1;
}
function dataSecond(data2){
return data2;
}
function concatData(data1,data2){
return dataFirst.concat(dataSecond);
}
响应对象 data1 和 data2 是 json,看起来像
data1={errors: null, rowdata: Array[4], state: Object}
data2={errors: null, rowdata: Array[9], state: Object}
我想合并它们并创建一个 JSON 对象。生成的 json 应具有来自 data2 的所有值和来自 data1 的值,这些值在 data2 中不存在。
所以 concatData json 应该是这样的
concatData={errors: null, rowdata: Array[13], state: Object}
这是我没有得到的预期结果
行数据应包含来自 data1 和数据 2 的值
JavaScript 的回答最受欢迎
我从这里获取了示例代码并对其进行了修改以合并数组。此处提供了小提琴(打开检查器以查看日志)。
var extend = function () {
var extended = {}, deep = false, i = 0, length = arguments.length;
// Check if a deep merge
if ( Object.prototype.toString.call( arguments[0] ) === '[object Boolean]' ) {
deep = arguments[0];
i++;
}
// Merge the object into the extended object
var merge = function (obj) {
for ( var prop in obj ) {
if ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {
// If deep merge and property is an object, merge properties
if ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' ) {
extended[prop] = extend( true, extended[prop], obj[prop] );
} else if (Object.prototype.toString.call(obj[prop]) === '[object Array]') {
if (extended[prop] && Object.prototype.toString.call(extended[prop]) === '[object Array]') {
extended[prop] = extended[prop].concat(obj[prop]);
} else if (!extended[prop]) {
extended[prop] = obj[prop];
}
} else {
extended[prop] = obj[prop];
}
}
}
};
// Loop through each object and conduct a merge
for ( ; i < length; i++ ) {
var obj = arguments[i];
merge(obj);
}
return extended;
};
var item1 = { name: 'Frank', age: 42, pets: ['cat', 'dog']};
var item2 = { name: 'Jane', pets: ['fish']};
var item3 = extend(true, item1, item2);
window.console.log(item3);
它应该让你走上你想去的地方。就我个人而言,我觉得它需要更多的工作才能与jQuery的扩展相提并论。
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序