javascript添加和返回数组

时间:2017-05-26 23:14:02

标签: javascript arrays

我正在进行一个javascript练习,要求我构建一个函数,将现有客户的名字从一个数组中取出来放入队列中。函数返回一个字符串告诉客户他们的位置。 示例输出:

takeANumber(katzDeliLine, "Ada"); // "Welcome, Ada. You are number 1 in line."
takeANumber(katzDeliLine, "Grace"); // "Welcome, Grace. You are number 2 in line."

这是我的尝试:

function takeANumber(katzDeli, name) {
  var katzDeliLine = []
  name = ["Ada", "Grace", "Kent"]

  for ( let i =0; i<name.length; i++){
    katzDeliLine.push(`Welcome ${name[i]}, You are ${i} in line`)

  }

  return katzDeliLine

}

我的回程打印出整个数组 [ 'Welcome Ada, You are 0 in line', 'Welcome Grace, You are 1 in line', 'Welcome Kent, You are 2 in line' ]

为了一次收到1条消息,我该如何调整代码。

4 个答案:

答案 0 :(得分:0)

function takeANumber(katzDeli, name) {
  var katzDeliLine = []
  names = ["Ada", "Grace", "Kent"]

  for ( let i =0; i<names.length; i++){
    if(names[i] == name) {
        return `Welcome ${name[i]}, You are ${i} in line`;
    }
  }
  return "You are not in our system";
}

您也可以将其传递给变量。 你不能有2个同名的变量。所以我重命名了数组“name”,它变成了“名字”

答案 1 :(得分:0)

Array.push在适当的位置工作,它不返回新数组,因此您应该定义函数的外部队列,并将该数组传递给函数。你不应该在你的函数中循环,你应该只是push()一个新项目到提供的数组并返回数组的length(减1)。

答案 2 :(得分:0)

正如我所说,你想要将队列和名称传递给一个函数,该函数应返回队列中的&#34;位置&#34;消息。

let someQueue = ['Ada', 'Grace', 'Kent'];
function getPositionInQueue(queue, name) {
  let position = queue.indexOf(name);
  return (++position) ? `Welcome ${name}. You are ${position} in line.` : `You are not in line`;
}

getPositionInQueue(someQueue, 'Ada'); // "Welcome, Ada. You are number 1 in line."

答案 3 :(得分:0)

在您的实际代码中,您将使用您在函数中声明的数组覆盖函数的name参数。您应该为它们使用不同的变量名称。

您可以使用Array.proptotype.forEach()方法循环names数组并提取正确的数组。

我不知道我是否正确理解了您的需求,您想要获取数组中给定name值的索引,并将其作为新的string打印出来输出数组。

<强>演示:

这就是你的代码:

&#13;
&#13;
function takeANumber(name) {
  var names = ["Ada", "Grace", "Kent"];
  var katzDeliLine = [];
  var index = 0;
  names.forEach(function(item, key) {
    katzDeliLine.push('Welcome ' + item + ', You are ' + (key + 1) + ' in line');
    if (item === name) {
      index = key;
    }
  });
  return katzDeliLine[index];
}

console.log(takeANumber("Ada"));
console.log(takeANumber("Grace"));
&#13;
&#13;
&#13;