Javascript 仅向对象添加双引号
我有一个for循环中的值,我使用它们创建了一个对象 我的最后一个对象带有单引号和双引号。我只想在钥匙周围加上双引号 我试着用Javascript 仅向对象添加双引号,javascript,arrays,Javascript,Arrays,我有一个for循环中的值,我使用它们创建了一个对象 我的最后一个对象带有单引号和双引号。我只想在钥匙周围加上双引号 我试着用 a.value = `${arrayString[i]}`; a.value = arrayString[i] + ''; a.value = arrayString[i]; a.value = arrayString[i].toString(); a.value = String(arrayString[i]); a、 价值是我的关键。 当我
a.value = `${arrayString[i]}`;
a.value = arrayString[i] + '';
a.value = arrayString[i];
a.value = arrayString[i].toString();
a.value = String(arrayString[i]);
a、 价值是我的关键。
当我使用时:a.value=JSON.stringify(arrayString[i])代码>
然后我console.log(a.value)/“a”
我得到了我想要的钥匙,但当我试图将其添加到我的最终对象时,我得到了一个额外的单引号:
{'a':2','b':2','c':1','aa':3}//我在控制台上得到了什么。log
{a:2,“b:2,”c:1,“aa:3}//我期望在控制台上得到的东西。log
这就是我如何推到我的最终对象a.count=myCount;
finalResultObject[a.value]=a.count代码>
myCount
只是我在循环中得到的一个生成的数字
编辑**
这是一个计算特定字符串中字数的函数
exports.countWordsInString = (someString) => {
let arrayString = [];
arrayString = someString.split(' ');
arrayString = arrayString.filter(value => Object.keys(value).length !== 0);
var finalResultObject = {};
// make a copy of the input array
var copy = arrayString.slice(0);
// first loop goes over every element
for (var i = 0; i < arrayString.length; i++) {
var myCount = 0;
// loop over every element in the copy and see if it's the same
for (var w = 0; w < copy.length; w++) {
if (arrayString[i] === copy[w]) {
// increase amount of times duplicate is found
myCount++;
// sets item to undefined
delete copy[w];
}
}
if (myCount > 0) {
var a = {};
// a.value = '" \\' + arrayString[i] + '"'
// a.value = `${arrayString[i]}`;
// a.value = arrayString[i] + '';
// a.value = arrayString[i];
// a.value = arrayString[i].toString();
a.value = JSON.stringify(arrayString[i]);
console.log(a.value)
a.count = myCount;
finalResultObject[a.value] = a.count;
}
}
// finalResultObject.replace(/\'/gi,'')
console.log(finalResultObject);
return finalResultObject;
};
当我使用a.value=JSON.stringify(arrayString[i])时,这会显示在我的控制台中代码>
当我使用a.value=arrayString[i]时,这会显示在我的控制台中代码>
当你说“这就是我得到的”,你的意思是这就是你在console.log中看到的?也许你应该完整地显示实际的代码。如果arrayString[I]
已经是字符串,那么就没有必要使用JSON.stringify()
,因为它只会用引号将字符串括起来a.value=arrayString[I]代码>应该已经工作了。你为什么不这么认为?你的期望是错误的。你在拿苹果和桔子作比较。
test('output number of words in string', () => {
const text = countWordsInString('a b a c aa aa aa b');
expect(text).toBe({"a": 2, "b": 2, "c": 1, "aa": 3})
});