Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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_Arrays - Fatal编程技术网

Javascript 我可以通过使用数组中某个对象的另一个值来获取该对象内部的特定值吗?

Javascript 我可以通过使用数组中某个对象的另一个值来获取该对象内部的特定值吗?,javascript,arrays,Javascript,Arrays,我有多个数组,其中包含三个键/值对(姓名、电话号码和首字母)。我有一个循环,它创建一个复选框列表,并将初始值设置为它的类。我试图弄清楚,当复选框被选中时,如何从相应的对象中提取电话号码值,并将其保存到一个单独的数组中。例如:如果选中了类为“.BRJ”的框,则将该对象中的12222222号保存到新数组中 我知道我可以在输入中单击一次就运行一个函数,但我一辈子都不知道如何找到与该复选框匹配的电话号码 const management = [ { name: 'Bob Jones', number

我有多个数组,其中包含三个键/值对(姓名、电话号码和首字母)。我有一个循环,它创建一个复选框列表,并将初始值设置为它的类。我试图弄清楚,当复选框被选中时,如何从相应的对象中提取电话号码值,并将其保存到一个单独的数组中。例如:如果选中了类为“.BRJ”的框,则将该对象中的12222222号保存到新数组中

我知道我可以在输入中单击一次就运行一个函数,但我一辈子都不知道如何找到与该复选框匹配的电话号码

const management = [
  { name: 'Bob Jones', number: 12222222222, initials: 'BRJ',},
  { name: 'Peter Jones', number: 1333333333, initials: 'PRJ',},   
];

const operatorLoop = (shift, list) => {

  for (var i = 0; i < shift.length; i++) {
    list.innerHTML += `
    <li><input type = 'checkbox' class ='${shift[i].initials}' 
    >${shift[i].name}</input></li>
  `}
}

operatorLoop(management, mgmtUl);
const管理=[
{姓名:'Bob Jones',号码:1222222,首字母缩写:'BRJ',},
{姓名:'Peter Jones',号码:133333333,首字母缩写:'PRJ',},
];
常量运算符循环=(移位,列表)=>{
对于(变量i=0;i${shift[i].name}
`}
}
operatorLoop(管理层、管理层);

首先,您应该添加更多属性,其值为phone

const operatorLoop = (shift, list) => {
   for (var i = 0; i < shift.length; i++) {
      list.innerHTML += `
       <li><input type = 'checkbox' data-number='${shift[i].number}' class ='${shift[i].initials}' 
       >${shift[i].name}</input></li>`
   }
}

实际上,您可以在
  • 元素的数据属性中设置电话号码,然后单击复选框,获取数据属性值并将其推送到电话号码数组中

    const selectedPhoneNumbers = [];
    function clickHandler(e) {
      const phoneNumber = e.target.getAttribute('data-phone');
      selectedPhoneNumbers.push(phoneNumber);
    }
    const operatorLoop = (shift, list) => {
      for (var i = 0; i < shift.length; i++) {
        list.innerHTML += `
          <li><input type = 'checkbox' data-phone='${shift[i].number}' class ='${shift[i].initials}'>
            ${shift[i].name}</input>
          </li>`
       }
    }
    
    const selectedPhoneNumbers=[];
    函数clickHandler(e){
    const phoneNumber=e.target.getAttribute('data-phone');
    选择电话号码。按(电话号码);
    }
    常量运算符循环=(移位,列表)=>{
    对于(变量i=0;i
    ${shift[i].name}
    `
    }
    }
    

    这样,您就不必
    从对象(在数组内部是另一个循环)中查找单击的项。

    1)从onclick事件处理程序内部获取单击的复选框的类名。2) 使用
    Array.prototype.find()
    查找相应的对象。3) 获取对象的
    number
    属性。我对这方面很陌生,并且自学成才。我以为我有点不知所措,但这很管用,而且对我来说非常容易理解。非常感谢!
    const selectedPhoneNumbers = [];
    function clickHandler(e) {
      const phoneNumber = e.target.getAttribute('data-phone');
      selectedPhoneNumbers.push(phoneNumber);
    }
    const operatorLoop = (shift, list) => {
      for (var i = 0; i < shift.length; i++) {
        list.innerHTML += `
          <li><input type = 'checkbox' data-phone='${shift[i].number}' class ='${shift[i].initials}'>
            ${shift[i].name}</input>
          </li>`
       }
    }