在javascript中为数组创建函数。

时间:2017-09-30 18:38:26

标签: javascript arrays

嘿,刚刚启动javascript并且在为两个数组编写函数时遇到了一些麻烦。一个是名称数组,一个是引号数组。我不会写出每个名字和每个报价,但它是如此布局的。

Names = [Jim, Bob, Josh, Tom]

Quotes = [
[ "blah blah blah."
"quote quote quote."] 
] 

现在每个引号数组都与名称对应,因此,如果Jim在名称数组中为[0],则引号也为[0]。我试图创建一个函数,你可以在其中输入像numberofQuotes(“Jim”)这样的东西并让它吐出那个人有多少引号。但我无法弄清楚该怎么做。我仍然是Javascript的新手。

2 个答案:

答案 0 :(得分:1)

您可以使用indexOflength来实现此目的。



var names = ['Jim', 'Carl', 'Bob'];
var quotes = [['Foo bar', 'Something smart'], ['something dumb'], []];

function countQuotes (name) {
  // indexOf will return the position the name appears in the names array
  var index = names.indexOf(name);
  // we can use it to get the same position in the quotes array
  // length returns how many items are in the array
  return quotes[index].length;
}

var result = countQuotes('Jim');
console.log(result);




但是,正如评论中所述,一个对象可以很好地用于此:



var people = {
  Jim: [
    'Foo bar',
    'Something smart',
  ],
  Carl: [
    'Something dumb',
  ]
};

var countQuotes = function (name) {
  return people[name].length;
}

var result = countQuotes('Jim');
console.log(result);




还有一些格式化对象的方法,但我会让你进行实验。

答案 1 :(得分:0)

通过迭代并根据第一个数组将值分配给键来创建key:value对。

稍后您可以查看引号数:Obj["Jim"].length



var Names = ['Jim', 'Bob', 'Josh', 'Tom']

var Quotes = [
  ["blah blah blah.", "Jim again"],
  "quote quote quote.", "Josh quoted", "Tom quoted"
]

var Obj = {}

for (var i = 0; i < Names.length; i++) {
  Obj[Names[i]] = Quotes[i];
}

console.log("Jim quoted", Obj["Jim"].length);
&#13;
&#13;
&#13;