嘿,刚刚启动javascript并且在为两个数组编写函数时遇到了一些麻烦。一个是名称数组,一个是引号数组。我不会写出每个名字和每个报价,但它是如此布局的。
Names = [Jim, Bob, Josh, Tom]
Quotes = [
[ "blah blah blah."
"quote quote quote."]
]
现在每个引号数组都与名称对应,因此,如果Jim在名称数组中为[0],则引号也为[0]。我试图创建一个函数,你可以在其中输入像numberofQuotes(“Jim”)这样的东西并让它吐出那个人有多少引号。但我无法弄清楚该怎么做。我仍然是Javascript的新手。
答案 0 :(得分:1)
您可以使用indexOf
和length
来实现此目的。
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;