我在网上和我的朋友一起玩
我们互相要求(姓名,动物或无生命)以特定字母开头
所以我正在考虑建立一个页面来帮助我培训这个游戏
这是一个PHP代码,例如:
function getNamesByChars($chars,$type='name'){
$names=array(
'd'=>'Dan',
'j'=>'John',
);
$animals=array(
'd'=>'Dog',
'j'=>'Jar',
);
$chars=explode(' ',$chars);
foreach($chars as $char){
//if it a name
if($type=='name')
$results.=$names[$char];
//if it animal
elseif($type=='animal')
$results.=$animals[$char];
}
}
getNamesByChars('j d','animal');
//results (Jar dog)
这里的问题是我需要尽可能快地使这个页面
PHP需要加载页面
我认为javascript是更快的方式
但我是javascript的初学者所以我无法建立这个功能
在javascript中构建此函数的任何帮助?
答案 0 :(得分:2)
在这里,如果你真的想知道javascript,你应该读一个tuto ....
function getNamesByChars(chars,type){
type = type || 'name';
var things = { name: {'d': 'dan', 'j': 'john'},
animal: {'d': 'dog', 'j': 'jar'}};
var results = [];
var charsarr = chars.split(' ');
for (var i in charsarr) {
results.push(things[type][charsarr[i]]);
}
return results;
}
理想情况下,应该检查一个密钥是否存在,但只有您将使用它...
答案 1 :(得分:1)
这是你在js
中的php函数的转换function getNamesByChars( chars,type ){
type = type || 'name';
var names = { 'd':'Dan', 'j':'John' },
animals = { 'd':'Dog', 'j': 'Jar' };
results = '';
var chars = chars.split(' ');
for( var i=0,len = chars.length; i< len ;i++ ){
if( type == 'name'){
results += names[ chars[i]];
} else if( type == 'animal'){
results += animals[ chars[i]];
}
}
return results ;
}
并在控制台中打印结果
console.log( getNamesByChars('j d','animal') );
或提醒
alert( getNamesByChars('j d','name') );
答案 2 :(得分:1)
我完全有点过分了这个:)有趣的问题,希望它可以教给你一些东西。
<强> HTML 强>
<div>
<label for="chars">Chars:</label>
<input id="chars" type="text" />
</div>
<div>
<input id="names" type="radio" name="names-radio" checked />
<label for="names">Names</label>
<input id="animals" type="radio" name="names-radio" />
<label for="animals">Animals</label>
</div>
<button id="get-names">Get values!</button>
<div>
<span>Result</span>
<div id="result"></div>
</div>
<强>的JavaScript 强>
document.getElementById('get-names').onclick = getNamesClick;
function getNamesClick() {
var chars = document.getElementById('chars').value;
var names = document.getElementById('names').checked ? 'names' :
document.getElementById('animals').checked ? 'animals' : ''
var result = getNamesByChars(chars, names);
alert(result);
console.log(document.getElementById('result'));
document.getElementById('result').innerHTML = result;
}
function getNamesByChars(chars, names) {
var result = '';
charsArray = chars.split(' ');
for (var i = 0; i < charsArray.length; i++) {
var values = data[names][charsArray[i]];
for (var j = 0; j < values.length; j++) {
if (result != '')
result += ' ';
result += values[j];
}
}
return result;
}
var data = {
'names': {
'a': [ 'Andrew', 'Allison' ],
'b': [ 'Bob', 'Barry' ],
'c': [ 'Cheryl', 'Carol' ],
'd': [ 'Daniel', 'Danny' ],
'e': [ 'Eddie', 'Emma' ],
'f': [ 'Frank', 'Flo' ],
'g': [ 'Greg', 'Grant' ],
'h': [ 'Holly' ],
'i': [ 'Ian' ],
'j': [ 'John' ],
'k': [ 'Kaylie' ],
'l': [ 'Liam' ],
'm': [ 'Mary' ],
'n': [ 'Ned' ],
'o': [ 'Oliver' ],
'p': [ 'Peter' ],
'q': [ 'Quentin' ],
'r': [ 'Ryan' ],
's': [ 'Sarah' ],
't': [ 'Tom' ],
'u': [ 'Ualani' ],
'v': [ 'Victor' ],
'w': [ 'Will' ],
'x': [ 'Xan' ],
'y': [ 'Yvette' ],
'z': [ 'Zoe' ]
},
'animals': {
'd': [ 'Dog', 'Dolphin' ],
'e': [ 'Elephant' ]
}
}