我必须计算一个字符串的Abjad值。用户输入文本,它将返回Abjad表中的数字。
这是我的代码,尽管我知道这是错误的:
function letterValue(str) {
var arrayAbjad = [
{char1:الف,value: 1},{char2:ب, value: 2},{char3:ج, value: 3},{ char4:د,value: 4},
{char5:ه,value: 5},{char6:و,value: 6},{char7:ز,value: 7},{char8:ح,value: 8},
{char9:ط,value: 9},
{char10: ی,value: 10},{char11:ک,value: 20},{char12:ل,value: 30},{char13: م,value: 40},
{char14:ن,value: 50},{char15:س,value: 60}, {char16:ع,value: 70},
{char17:ف,value: 80},{char18:ص,value: 90,},{char19:ق,value: 100},
{char20:ر,value: 200},{char21:ش,value: 300},
{char22: ت,value: 400},{char23:ث,value: 500},{char24:خ,value: 600},
{char25:ذ,value: 700},{char26: ض,value: 800},
{char27: ظ,value:900},{char28:غ,value:1000}
]
return arrayAbjad.find(value);
}
let str = prompt('enter string');
letterValue("str");
我想知道您是否能帮助我。
答案 0 :(得分:0)
尝试此方法。首先,您要定义字母。然后调用搜索功能并遍历 str 中的每个字符。对于每个 char ,如果找到一个值,则将其循环到定义的字母,然后将其添加到 sum 。但是,这可能不是解决问题的最佳方法。
@Configuration
@EnableRedisRepositories("com.demo.redis.repository")
public class RedisDataSourceConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
log.debug("Create Jedis Connection Factory");
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new JdkSerializationRedisSerializer());
template.setHashKeySerializer(template.getKeySerializer());
template.setHashValueSerializer(template.getValueSerializer());
return template;
}
@Bean
public RedisTemplate<String, Object> jsonRedisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
redisTemplate.setHashKeySerializer(redisTemplate.getKeySerializer());
redisTemplate.setHashValueSerializer(redisTemplate.getValueSerializer());
return redisTemplate;
}
}
spring.cache.type=redis
spring.redis.host=192.168.10.226
spring.redis.port=6379
spring.cache.redis.time-to-live=600000
答案 1 :(得分:0)
您的代码有一些问题:
'
或"
)包裹filter
中,function
方法实际上得到的是value
(您的意思是str
)。无论如何,您可能需要阅读有关filter
的更多信息,以了解其工作原理。
function letterValue(str) {
var arrayAbjad = [{
char: "الف",
value: 1
}, {
char: "ب",
value: 2
}, {
char: "ج",
value: 3
}, {
char: "د",
value: 4
},
{
char: "ه",
value: 5
}, {
char: "و",
value: 6
}, {
char: "ز",
value: 7
}, {
char: "ح",
value: 8
}, {
char: "ط",
value: 9
}, {
char: "ی",
value: 10
},
{
char: "ک",
value: 20
}, {
char: "ل",
value: 30
}, {
char: "م",
value: 40
}, {
char: "ن",
value: 50
}, {
char: "س",
value: 60
}, {
char: "ع",
value: 70
},
{
char: "ف",
value: 80
}, {
char: "ص",
value: 90,
}, {
char: "ق",
value: 100
},
{
char: "ر",
value: 200
}, {
char: "ش",
value: 300
},
{
char: "ت",
value: 400
}, {
char: "ث",
value: 500
}, {
char: "خ",
value: 600
}, {
char: "ذ",
value: 700
}, {
char: "ض",
value: 800
},
{
char: "ظ",
value: 900
}, {
char: "غ",
value: 1000
}
]
return arrayAbjad.find(item => item.char === str);
}
const str = prompt('enter string');
if (str) {
const result = letterValue(str);
if (result) {
console.log(result.value);
} else {
console.log('not found');
}
}