首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >动态地将数据添加到不同的JS对象中-在循环中还是在交换机中,等等?

动态地将数据添加到不同的JS对象中-在循环中还是在交换机中,等等?
EN

Stack Overflow用户
提问于 2019-04-25 06:08:50
回答 2查看 37关注 0票数 2

所有我被困在这个位置,不知道如何解决它:)我从一个网页获得许多不同的属性-我想将它们存储在对象中,稍后发送到PHP/Mysql -我的问题是,我不知道有多少对象是由用户创建的,这些对象将数据放到页面中,所以我需要创建对象比方说: object1{id,name,date...},object2,object3,单击页面中的发送按钮-我知道一次不能超过150个对象+存储在对象中的数据。因此,我尝试在读取输入字段长度的同时动态创建对象-到目前为止,这是可行的。现在,我希望在使用jquery遍历页面时用数据填充创建的对象,并搜索具有需要存储在Object1、Object2等中的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;而且键值方法也不能像预期的那样工作:(我做错了什么?

我知道这种类型的问题也有数组,但实际上多维数组在所有其他语言中都可以工作,在这些语言中,我可以拥有键值对,而不仅仅是数字索引... :(

希望你能明白我的意思。今天真的很晚了。

感谢所有的人!为了您的时间和耐心:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-25 06:31:16

要创建objekt1objekt2作为全局变量,请使用window["variable_name"]

for (x=1; x < 3; x++){
window["objekt" + x] = {};
window["objekt" + x].name = "name" + x;
window["objekt" + x].id = x * 10;
 }
console.log(objekt1)
console.log(objekt2)

或者动态创建自己的父对象和子对象

var data = {};

for (x=1; x < 3; x++){
data["objekt" + x] = {};
data["objekt" + x].name = "name" + x;
data["objekt" + x].id = x * 10;
 }
console.log(data.objekt1)
console.log(data.objekt2)

票数 1
EN

Stack Overflow用户

发布于 2019-04-25 06:20:12

我不太清楚您在问什么,但听起来您似乎是在尝试在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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55839243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档