Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问对象JavaScript中的变量?_Javascript - Fatal编程技术网

如何访问对象JavaScript中的变量?

如何访问对象JavaScript中的变量?,javascript,Javascript,常量重命名Keysbutton==>{ 让v1=document.querySelectorAll'.renameKeysInput'[0].值; 设v2=document.queryselectoral.renameKeysInput'[1]。值; 让v3=document.queryselectoral'.renameKeysInput'[2].value; 设obj={v1:'Bobo',v2:'Programmer',v3:100}; logrenameKey{name:'firstNa

常量重命名Keysbutton==>{ 让v1=document.querySelectorAll'.renameKeysInput'[0].值; 设v2=document.queryselectoral.renameKeysInput'[1]。值; 让v3=document.queryselectoral'.renameKeysInput'[2].value; 设obj={v1:'Bobo',v2:'Programmer',v3:100}; logrenameKey{name:'firstName',job:'Actor'},obj; } 让renameKey=keyObj,obj=>{ 让结果={} 用于输入obj中的let键{ 结果[keyObj[key]| | key]=obj[key] } 返回结果 }
尝试您应该使用数组表示法将值分配给对象。这样,您就可以从v1、v2和v3中获取属性的名称。应该是这样的:

常量重命名Keysbutton==>{ 让v1=document.querySelectorAll'.renameKeysInput'[0].值; 设v2=document.queryselectoral.renameKeysInput'[1]。值; 让v3=document.queryselectoral'.renameKeysInput'[2].value; 设obj={}; obj[v1]=“Bobo”; obj[v2]=“程序员”; obj[v3]=100; logrenameKey{name:'firstName',job:'Actor'},obj; } 让renameKey=keyObj,obj=>{ 让结果={} 用于输入obj中的let键{ 结果[keyObj[key]| | key]=obj[key] } 返回结果 }
尝试您应该使用数组表示法将值分配给对象。这样,您就可以从v1、v2和v3中获取属性的名称。应该是这样的:

常量重命名Keysbutton==>{ 让v1=document.querySelectorAll'.renameKeysInput'[0].值; 设v2=document.queryselectoral.renameKeysInput'[1]。值; 让v3=document.queryselectoral'.renameKeysInput'[2].value; 设obj={}; obj[v1]=“Bobo”; obj[v2]=“程序员”; obj[v3]=100; logrenameKey{name:'firstName',job:'Actor'},obj; } 让renameKey=keyObj,obj=>{ 让结果={} 用于输入obj中的let键{ 结果[keyObj[key]| | key]=obj[key] } 返回结果 }
请尝试不要将实际值放入obj对象中。 将“v1”、“v2”和“v3”变量放入其中。 此外,您需要在使用renameKey之前声明它。如果没有起重功能,则使用普通功能

  let renameKey = (keyObj, obj) => {
  let result = {}
    for (let key in obj) {
      result[keyObj[key] || key] = obj[key]
    }
    return result
  }

const renameKeysButton = () => {
    let v1 = document.querySelectorAll('.renameKeysInput')[0].value;
    let v2 = document.querySelectorAll('.renameKeysInput')[1].value;
    let v3 = document.querySelectorAll('.renameKeysInput')[2].value;
    // 
    let obj = { v1: v1, v2: v2, v3: v3 };
    console.log(renameKey({ name: 'firstName', job: 'Actor' }, obj));
  }

<input type="text" class="renameKeysInput" value="A">
<input type="text" class="renameKeysInput" value="B">
<input type="text" class="renameKeysInput" value="C">
<button onclick='renameKeysButton()'>Try</button>

您从未将实际值放入obj对象中。 将“v1”、“v2”和“v3”变量放入其中。 此外,您需要在使用renameKey之前声明它。如果没有起重功能,则使用普通功能

  let renameKey = (keyObj, obj) => {
  let result = {}
    for (let key in obj) {
      result[keyObj[key] || key] = obj[key]
    }
    return result
  }

const renameKeysButton = () => {
    let v1 = document.querySelectorAll('.renameKeysInput')[0].value;
    let v2 = document.querySelectorAll('.renameKeysInput')[1].value;
    let v3 = document.querySelectorAll('.renameKeysInput')[2].value;
    // 
    let obj = { v1: v1, v2: v2, v3: v3 };
    console.log(renameKey({ name: 'firstName', job: 'Actor' }, obj));
  }

<input type="text" class="renameKeysInput" value="A">
<input type="text" class="renameKeysInput" value="B">
<input type="text" class="renameKeysInput" value="C">
<button onclick='renameKeysButton()'>Try</button>

当您使用v1、v2和v3作为对象键时,javascript会逐字解释它们。它不获取它们的值,而是直接使用它们的名称。如果你想让javascript获取它们的值,将它们用作键,你必须像我在回答中所做的那样将它们放在括号中。当你使用v1、v2和v3作为对象键时,javascript会逐字解释它们。它不获取它们的值,而是直接使用它们的名称。如果你想让javascript把它们的值用作键,你必须像我在回答中那样把它们放在括号里。你的意思是我不能将变量设置为键,但我可以将变量设置为值吗?在这个上下文中,变量和值是一样的。设v1为A,需要将其放入obj。另外,键在objDo的左侧,你的意思是我不能将变量设置为键,但我可以将变量设置为值吗?在这个上下文中,变量和值是相同的。设v1为A,需要将其放入obj。此外,钥匙位于obj内的左侧