给出:
var result1 = [{'p1':'v1'}];
var result2 = [{'p2':'v2'}];
var array1 = [{'p3':'v3'},{'p4':'v4'}];
规则:
如果数组具有一个属性,则将属性添加到主数组以返回。
如果数组具有多个属性,请添加标签并保持数组原样。
https://jsfiddle.net/3unx0hsa/5/
function mergeJson(data) {
let newarray1 = [];
for (let index = 0; index < resultsArray.length; index++) {
let element = resultsArray[index][0];
if (element.length === 1) {
newarray1.push(element);
}
if (element.length > 1) {
var x = `{data${index}: ${element}`;
newarray1.push(x);
}
}
}
答案 0 :(得分:3)
模板字符串文字创建一个字符串。您需要一个对象文字
var x = {[`data${index}`]: element};
var result1 = [{'p1': 'v1'}];
var result2 = [{'p2': 'v2'}];
var array1 = [{'p3': 'v3'}, {'p4': 'v4'}];
let x = mergeJson([result1, result2, array1]);
console.log(x);
function mergeJson(resultsArray) {
let newarray1 = [];
for (let index = 0; index < resultsArray.length; index++) {
let element = resultsArray[index];
if (element.length === 1) {
newarray1.push(element[0]);
}
if (element.length > 1) {
var x = {[`data${index}`]: element};
newarray1.push(x);
}
}
return newarray1;
}
答案 1 :(得分:1)
此行之后:var x = `{data${index}: ${element}`;
,x的值是一个字符串。那就是您在输出中看到的。将该行更改为以下内容:
var x = {`{data${index}`: element};
那应该给您期望的结果。
答案 2 :(得分:1)
使用这种类型的功能,您将能够显示Json值
//JSON = objects and you have to call them for examle:
var result1 = [{'p1':'v1'}];
var result2 = [{'p2':'v2'}];
var array1 = result1.concat(result2);
for (i in array1){
array1[i];
for(x in array1[i]){
document.getElementById("test").innerHTML += x+" - "+array1[i][x] +" <br>";
}
}
<div id="test"></div>