Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新对象值_Javascript_Object - Fatal编程技术网

Javascript 更新对象值

Javascript 更新对象值,javascript,object,Javascript,Object,我在更新score属性时遇到问题。我是新来的,但仍然觉得无法理解这一点很疯狂 “战斗”是一根弦 功能alphabetWar(战斗){ 设左侧={ “w”:4, "p":3,, “b”:2, “s”:1, “分数”:0 } 设右侧={ “m”:4, 问:3,, "d":2,, “z”:1, “分数”:0 } 为了(让我们战斗吧){ if(leftSide.hasOwnProperty(char)){ leftSide.score+=leftSide.char; if(右侧hasOwnProper

我在更新score属性时遇到问题。我是新来的,但仍然觉得无法理解这一点很疯狂

“战斗”是一根弦

功能alphabetWar(战斗){
设左侧={
“w”:4,
"p":3,,
“b”:2,
“s”:1,
“分数”:0
}
设右侧={
“m”:4,
问:3,,
"d":2,,
“z”:1,
“分数”:0
}
为了(让我们战斗吧){
if(leftSide.hasOwnProperty(char)){
leftSide.score+=leftSide.char;
if(右侧hasOwnProperty(char)){
rightSide.score+=rightSide.char;
}
}
}
console.log(leftSide.score)
如果(leftSide.score==rightSide.score)返回“让我们再次战斗!”;
返回leftSide.score>righside.score?“左侧赢!”:“右侧赢!”;

}
括号表示法允许您使用变量值访问对象的属性:

let char='m';
rightSide.score+=右侧[char]您可以尝试:

for (let char of fight.split('')) {
  if(typeof leftSide[char] != 'undefined'){
    leftSide.score += leftSide[char]
  }
  if(typeof rightSide[char] != 'undefined'){
    rightSide.score += rightSide[char]
  }
}

当然。你是对的,但这并没有解决问题。我还试着把所有的点符号改成括号符号。这很有效。你能帮我理解为什么
let char of fight
不起作用,而
let char of fight.split(“”)
起作用吗?因为循环通常适用于数据类型的数组。语言中的字符串​​与C或C++一样,它是字符数组,但在javascript中它只是一个字符串。拆分(“”)可以在字符串和数组之间进行更改