所以事情是这样的。我有 3 个输入框,用作表格单元格(标题)。我还运行一个脚本,如果其中一个输入框的输入发生更改,则会触发一个函数,使用 ajax 请求从我的数据库中获取数据。返回一个 json。现在我从返回的 data(json) 中获取对象,因此我得到类似 {key1: '1', key2: 'myName', ...} 的内容。现在,“问题”是我不知道键名是什么(我知道键名但我不想使用它们)。但我希望所有键的值都列在单独的数组中。
我现在拥有的脚本:
$.ajax({ //ajax request
method: "POST",
url: "../php/fetch.php",
data: inputs,
dataType: 'json',
cache: false,
success: function(data) {
var j=0;
var otp;
for(var i = 0; i < data.length; i++) {
var obj = data[i];
console.log(obj.length);
for(p=0; p<obj.length; p++){
otp = obj[0];
console.log(otp);
j++;
}
}
}
})
所以我已经编写了上面的代码,但我在分配值时陷入困境。在不知道列名的情况下如何将所有键值放入单独的数组中?
<小时/>编辑:我不想获取键值,但我想获取键值自己的数组,其中包含数据库(此特定键)中的值。
<小时/>示例:
返回一个json [{key1: "value1", key2: "value2",/*更多值*/...}, {key1: "value10", key2: "value20",/*更多值*/...}]
类似的东西。我创建了一个包含“json 的一部分”的 obj
,如下所示 {key1: "value1", key2: "value2",/*更多值*/...}
。
我想要什么:
我想从包含 ["value 1", "value10"]
的 obj
创建一个数组,在本例中为 key1
。因此,对于 json 中的每个 key1
值,获取它并将其放入数组中。
我已经尝试过 obj.keys[0] ,但它返回 0 作为值(它与我的 json 中的任何值根本不匹配)
非常感谢您提前提供的帮助! :)
研祥
诗。当然,如果有任何不清楚的地方,请随时询问。
最佳答案
你可以有这样的东西:
var tmpObject = {}
data.forEach(function (row) {
Object.keys(object).forEach(function (key) {
if (tmpObject[key]) {
tmpObject[key].push(row[key]);
} else {
tmpObject[key] = new Array(row[key]);
}
});
});
对于像这样的data
对象:
[{key1: "value1", key2: "value2"}, {key1: "value10", key2: "value20"}]
应该创建另一个像这样的对象:
{
key1: ["value1", "value10"],
key2: ["value2", "value20"]
}
关于javascript - 动态处理ajax结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35588253/