将不带键的值推送到javascript数组
在react native中,我试图将下面代码中的值推送到一个没有键的数组中,因为我使用的组件(react native table组件)将只接受字符串或数字数组,而不接受具有键-值对的对象。我很快就要弄明白了,但我被卡住了 响应结构。数据将不带键的值推送到javascript数组,javascript,arrays,key-value,Javascript,Arrays,Key Value,在react native中,我试图将下面代码中的值推送到一个没有键的数组中,因为我使用的组件(react native table组件)将只接受字符串或数字数组,而不接受具有键-值对的对象。我很快就要弄明白了,但我被卡住了 响应结构。数据 response.data = { "Hours": 234, "Minutes": 343, "Days": 23, "Months": 4 } 编码以接收response.data并推送到阵列 toScreenTwo = async
response.data = {
"Hours": 234,
"Minutes": 343,
"Days": 23,
"Months": 4
}
编码以接收response.data并推送到阵列
toScreenTwo = async () => {
const { isLoggedIn, user} = this.state;
try {
if (!isLoggedIn) {
const response = await http.post('/v1/signup/user', {
user,
})
for (var value in response.data) {
this.state.tableData2.push(value);
}
console.log('response', this.state.tableData2);
}
await this.setState({
modalVisible: false,
friendsModalVisible: false
});
} catch(err) {
console.log("error ", err);
}
}
当前代码结果
上面的代码是当前仅将键推送到数组tableData2,而我只想将值推送到数组tableData2
反应本机表组件接受的数组格式
tableData: [
['1', '2', '3'],
['a', 'b', 'c'],
['1', '2', '3'],
['a', 'b', 'c']
]
似乎需要向react本机表组件传递一个数组,其中至少嵌套一个数组
错误
tableData: [
['1', '2', '3'],
['a', 'b', 'c'],
['1', '2', '3'],
['a', 'b', 'c']
]
如果有人有任何建议,那就太好了 假设此
响应。数据是包含以下数据的对象:
{
key: 1,
key2, "Ele", and so on.
}
您可以使用函数Objec.values
获取值数组[1,“Ele”]
,并使用函数apply
将这些值作为参数传递给函数push
let values = Object.values(response.data);
Array.prototype.push.apply(this.state.tableData2, values);
此代码片段稍微解释了函数应用
和对象.值
的工作原理
让myObj={
“小时数”:234,
“会议记录”:343,
“天”:23天,
“月”:4
};
让数组=[];
让值=对象值(myObj);
Array.prototype.push.apply(数组,值);
console.log(数组)代码>假设此响应。数据是包含以下数据的对象:
{
key: 1,
key2, "Ele", and so on.
}
您可以使用函数Objec.values
获取值数组[1,“Ele”]
,并使用函数apply
将这些值作为参数传递给函数push
let values = Object.values(response.data);
Array.prototype.push.apply(this.state.tableData2, values);
此代码片段稍微解释了函数应用
和对象.值
的工作原理
让myObj={
“小时数”:234,
“会议记录”:343,
“天”:23天,
“月”:4
};
让数组=[];
让值=对象值(myObj);
Array.prototype.push.apply(数组,值);
console.log(数组)代码>什么是响应。数据
?Aka,循环中的value
是什么?您可能需要类似于this.state.tableData2.push(value.somePropertyName)的东西代码>。请添加上下文。运行代码时会发生什么?我想这是我的反应。您使用的组件是什么?为什么?你说你卡住了,你收到错误信息了吗?这不是你所期望的吗?你期望它做什么?push
不会返回承诺,你不应该在这个循环中使用wait
1)你被困在哪里了?JavaScript中的数组已编制索引,但没有键。(2) Array.push()
不是异步函数,请在for循环中删除wait
。什么是response.data
?Aka,循环中的value
是什么?您可能需要类似于this.state.tableData2.push(value.somePropertyName)的东西代码>。请添加上下文。运行代码时会发生什么?我想这是我的反应。您使用的组件是什么?为什么?你说你卡住了,你收到错误信息了吗?这不是你所期望的吗?你期望它做什么?push
不会返回承诺,你不应该在这个循环中使用wait
1)你被困在哪里了?JavaScript中的数组已编制索引,但没有键。(2) Array.push()
不是一个异步函数,请在for循环中删除wait
。这是有道理的,我完全认为它会工作,但不是出于某种原因!我尝试了这个.state.tableData2=Object.values(response.data);但它不起作用。我认为这是我使用的react原生组件的问题。在我刚刚添加到原始帖子中的图片中,我仍然发现以下错误。我还包括一个硬编码的tableData2数组的控制台日志,该数组与此react本机组件一起工作,以及tableData2将其设置为Object.values(response.data)时的控制台日志。我像这样将Object.values包装在[]中,并且我能够找到它!let values=[Object.values(myObj)];谢谢你的帮助!你想编辑你的答案,我会接受吗?我会帮你编辑的,但是编辑别人的文章感觉很奇怪username@bzlight做这个this.state.tableData2.push(Object.values(responde.data))
这是一个更好的逻辑。这是有道理的,我完全认为它会工作,但不是出于某种原因!我尝试了这个.state.tableData2=Object.values(response.data);但它不起作用。我认为这是我使用的react原生组件的问题。在我刚刚添加到原始帖子中的图片中,我仍然发现以下错误。我还包括一个硬编码的tableData2数组的控制台日志,该数组与此react本机组件一起工作,以及tableData2将其设置为Object.values(response.data)时的控制台日志。我像这样将Object.values包装在[]中,并且我能够找到它!let values=[Object.values(myObj)];谢谢你的帮助!你想编辑你的答案,我会接受吗?我会帮你编辑的,但是编辑别人的文章感觉很奇怪username@bzlight执行此操作this.state.tableData2.push(Object.values(responde.data))
这是一个更好的逻辑。