首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同的值赋给javascript中对象数组的不同元素。

相同的值赋给javascript中对象数组的不同元素。
EN

Stack Overflow用户
提问于 2020-11-19 09:26:34
回答 1查看 35关注 0票数 0

这是我第一次写stackoverflow,我有以下问题:我有一个名为"components“的数组,它的元素是对象。每个对象都有不同的属性,但是当我为组件的给定属性赋值时,相同的值被赋值给components1。我尝试了不同的方法来解决这个问题,但都无济于事。代码如下:

代码语言:javascript
复制
  function update(x)
  {
  component = Number(x.id.split("_")[1]) - 1;
  property = x.id.split("_")[0];
  value = Number(x.value);
  components[component][property] = value;
  return
  }  

例如,在以下HTML代码中:

代码语言:javascript
复制
   <tr>
        <th>
            Viscosity at 50 &deg;C (cSt)
        </th>
        <td>
            <center>
            <input type="text" 
              onchange="update(this);" 
              class="property" 
              id="viscosity_1">
            </center>
        </td>
        <td class="last" >
            <center>
            <input type="text" 
              onchange="update(this);" 
              class="property" 
              id="viscosity_2">
            </center>
        </td>
   </tr>

当用户分配属性"viscosity_1“时,js函数将id字符串划分为”粘度“和"1",并且应该将用户插入的值分配给components.viscosity,而不影响组件1。粘度。实际上,如果用户更改了"viscosity_1“和"viscosity_2”中的任何一个,components.viscosity和Components1粘度都会更新。

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 19:27:12

更多细节:在js代码中,components数组的定义如下:

代码语言:javascript
复制
var ncomp = 2; 
var components = Array(ncomp).fill({}); 

components数组已由函数initialize()初始化,该函数在加载页面时执行:

代码语言:javascript
复制
function initialize()
  {
  inputList = Array.from(document.getElementsByClassName("property"));
  var len = inputList.length;
  var property
  var index
  for (i=0; i<len; i++)
    {
    property = inputList[i].id.split("_")[0];
    index = Number(inputList[i].id.split("_")[1]) - 1;
    components[index][property] = NaN;
    }
  return
  }

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

https://stackoverflow.com/questions/64903999

复制
相关文章

相似问题

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