我正在使用.append将两个或多个数组连接在一起形成一个短语,正如您在此jsfiddle中所看到的那样:jsfiddle append array。
function P1(phrase) {
var sen = ('<a class="senword">' + phrase[0] + '<br/>' + phrase[1] + ' </a>');
return sen;
}
var words = [
['one', '一'],
['eight','八'],
['hundred','百'],
];
$("#onehundred").append(P1(words[0])).append(P1(words[2]));
$("#eighthundred").append(P1(words[1])).append(P1(words[2]));
但是我需要一种方法来使用数组值追加数组,例如: '百'而不是索引号,例如[2]。这是因为每次我向'words'数组添加新词汇时,索引号显然都在变化,这意味着我需要手动更改短语的所有索引号。
有没有办法通过使用值而不是索引号来连接数组,因为无论我添加了多少新单词,这个值都不会改变?
例如,而不是:
$("#onehundred").append(P1(words[0])).append(P1(words[2]));
有这样的事情(但显然这不正确):
$("#onehundred").append(P1(words['one'])).append(P1(words['hundred']));
PS 如果它有帮助,我不介意改为文字数组,例如:
var words = [
{'english':'hundred', 'chinese':'百'},
];
感谢您的任何建议!
答案 0 :(得分:1)
将数据结构更改为对象:
var words = {
'one': '一',
'eight': '八',
'hundred': '百'
};
然后更改您的P1
功能以接受属性名称,并让它进行查找......
function P1(key) {
var sen = ('<a class="senword">' + words[key] + '<br/>' + key + ' </a>');
return sen;
}
然后只需传递属性名称......
$("#onehundred").append(P1('one')).append(P1('hundred'));
$("#eighthundred").append(P1('eight')).append(P1('hundred'));
DEMO: http://jsfiddle.net/DgAzz/
如果您无法更改初始结构,请从中创建对象...
var words_map = {};
$.each(words, function(i, val) {
words_map[val[0]] = val[1];
});