2017-08-06 44 views
0

我需要分割字符串后添加true到数组:JavaScript字符串数组,并添加布尔

var str = "California,Nevada"; 
var array = value.split(','); 
this.setState({ value: array }); 
console.log(this.state.value) 
// result is ["California", "Nevada"] 

我需要的结果是这样的:

{California: true, Nevada: true} 

回答

1

你可以试试这个:

var str = "California,Nevada"; 
 
var result = {}; 
 
str.split(',').forEach(function(e){ 
 
    result[e] = true; 
 
}); 
 

 
console.log(result);

0

所以你想要做的就是创建一个新的对象,然后遍历分裂输入这样的:

const input = "California,Nevada"; 
 
const output = {}; 
 
input.split(',').forEach(item => output[ item ] = true); 
 
console.log(output);

0

你可以的东西如下:

小提琴:https://jsfiddle.net/o9jatg2f/1/

var value = "California,Nevada"; 
var array = value.split(','); 
var obj = {}; 
for(var i=0;i<array.length;i++){ 
    obj[array[i]] = true; 
} 
console.log(obj); 

更新及如何使用foreach

array.forEach(item => state[item]=true); 
console.log(state) 
0

假设你想在第二行分裂str,而不是value,你可以这样做以下。

var str = "California,Nevada"; 
 
var array = str.split(','); 
 

 
// I think you need to use this.state instead of state 
 
var state = {}; 
 
array.forEach(item => state[item]=true); 
 
console.log(state)

2

您可以使用阵列#地图功能与split一起创建新对象

var newObj = {}; 
 
var str = "California,Nevada".split(',').map(function(item) { 
 
    newObj[item] = true; 
 
}); 
 
console.log(newObj)