在Javascript中编辑对象的值

Nik*_*lay 0 javascript dictionary editing object

我需要编辑对象中的值.在对象的值中添加一个新单词(值).但是如果它已经存在,那就加上这个新词.

例如:

var obj = {className:'open menu'}

新词(值) - '新',结果 - > obj.className ='打开菜单新'

新词(值) - '打开',结果 - > obj.className ='打开菜单'(相同)

这是我的代码:

function addClass(object, value){   
  var str = object.className;  //taking a string from object value
  var arr = str.split(' ');  // converting it to massive

  if (arr.indexOf(value) !== undefined) { //proceed if value exist 
       str = str + " " + value     // making new sring   
       object.className = str 

     {
  return object.className
}

var obj = {
  className: 'open menu'
}

console.log(addClass(obj, 'new')); // obj.className='open menu new' 
console.log(addClass(obj, 'open'));  // No change    , but I get 'open menu open' !
Run Code Online (Sandbox Code Playgroud)

怎么了?请帮忙.

Sci*_*ter 5

  if (arr.indexOf(value) !== undefined) { //proceed if value exist 
Run Code Online (Sandbox Code Playgroud)

indexOf永远不会回来undefined.如果找不到,则返回-1.使用它,它应该没问题:

  if (arr.indexOf(value) !== -1) { //proceed if value exist 
Run Code Online (Sandbox Code Playgroud)