javascript - 动态添加到不同的 JS 对象数据 - 在循环或开关等?
问题描述
所有我被困在这个位置并且不知道如何解决它:)我从网页中获得了许多不同的属性 - 我想将它们存储在对象中以便稍后将它们发送到 PHP/Mysql - 我的问题是我不'不知道用户创建了多少对象将数据放入页面,所以我需要创建对象让我们说:object1 {id,name,date ...},object2,object3通过点击发送按钮page - 我知道一次不能超过 150 个对象 + 对象中存储的数据。因此,我尝试在读取输入字段的长度时动态创建对象 - 到目前为止效果很好。现在我想用数据填充创建的对象,同时用 jquery 遍历页面并搜索具有我需要存储在 Object1 中的 id 和数据的类,
var objekt1 = {};
var objekt2 = {};
// handle click and add class
$("#but1").on("click", function(){
for (x=1;x<3; x++ ){
var key = "objekt"+x;
alert(key);
var value = x;
key.id=x;
key.name="name"+x;
}
/*objekt1.id='10';
objekt1.name='obj1';
objekt2.id='20';
objekt2.name='obj2';*/
$("#output1").html(objekt1.id+ ' ' + objekt1.name);
$("#output2").html(objekt2.id+ ' ' + objekt2.name);
}) //opn click
#but1 {
background: #0084ff;
border: 1px solid white;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#but1:hover{
cursor: pointer;}
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="but1">try me</div>
<div id="output1">
</div>
<div id="output2">
</div>
我不知道如何创建的问题是:我想实现:objekt1.id=1; 但不知道如何创建它:这根本不起作用:'objekt'+x=x; 但键值方法也无法按预期工作:(我做错了什么?
我知道这类问题也有数组,但真正的多维数组适用于所有其他语言,我可以有键值对,而不仅仅是数字索引...... :(
希望你明白我的意思......今天真的很晚......
感谢所有在那里!为了您的时间和耐心:)
解决方案
我有点不清楚你在问什么,但听起来你正在尝试在 for 循环中动态创建对象。下面是一个如何迭代某些东西并创建一个对象,然后将它存储在一个数组中的示例。如果我的理解不正确,请告诉我。
// Option 1
const objects = [];
for (let x = 1; x < 3; x++ ){
const obj = {
id: x,
name: `something ${x}`
}
objects.push(obj);
}
console.log(objects);
// Option 2
const obj2 = {};
for (let x = 1; x < 3; x++) {
obj2[`Item_${x}`] = { id: x };
}
console.log(obj2);
推荐阅读
- scala - 从 Dataframe 列中提取表情符号并将它们添加到同一 Dataframe Scala Spark 的不同列中
- python - 加速 numpy
- c - realloc() 出了什么问题?
- javascript - 每次来自后台的 Expo 应用程序如何重新启动?
- javascript - nodejs - 未显示 console.log 消息
- macos - 在 macOS Big Sur 上安装 Qt4
- python - 如何将数据框的不同分类数据汇总到不同的列中
- reactjs - MUI Select 组件中的自定义文本
- pyspark - spark.sql() 中不等于什么
- turtle-graphics - 如何将正常图像转换为色差图像?