Javascript “的价值”;“关键点”是:&引用;“价值”;物体计数错误
我有一个句子数组:Javascript “的价值”;“关键点”是:&引用;“价值”;物体计数错误,javascript,arrays,iteration,Javascript,Arrays,Iteration,我有一个句子数组: term = ["This is some string","This is another string"]; 我希望能够将其按单个单词进行拆分,并计算整个术语数组中每个单词出现的次数 简而言之,我想要: ["This is some string", "This is another string"]; var wordsArray{}; var term = ["This is some string", "This is another string"];
term = ["This is some string","This is another string"];
我希望能够将其按单个单词进行拆分,并计算整个术语数组中每个单词出现的次数
简而言之,我想要:
["This is some string", "This is another string"];
var wordsArray{};
var term = ["This is some string", "This is another string"];
for (var x = 0; x < term.length; x++){
var splitted = term.split([" "]);
for (var i = 0; i < splitted.length; i++) { //i = each splitted string(each word)
var count = 1;
if (splitted[i] in wordsArray){
//Add one to key value in wordarray
wordsArray[splitted[i]]++;
} else {
wordsArray[splitted[i]] = count;
}
}
}
最终成为:
{
This : 2
is : 2
some : 1
another : 1
string : 2
} //(they would be in alphabetic order)
我正在通过
term.split([“”])代码>将每个术语数组句子拆分为
言下之意
将这些单词中的每一个添加到对象(或可以称为“关联数组”的对象)
测试单词是否已在对象中,如果已在,则增加其值,否则将其添加到值为1的对象中
通过测试下面的代码,这似乎在大多数情况下都能正常工作,但是对于某些单词,最终计数不正确(但是我没有收到任何错误!)。
下面的代码没有正确输出计数有什么特殊原因吗
代码:
["This is some string", "This is another string"];
var wordsArray{};
var term = ["This is some string", "This is another string"];
for (var x = 0; x < term.length; x++){
var splitted = term.split([" "]);
for (var i = 0; i < splitted.length; i++) { //i = each splitted string(each word)
var count = 1;
if (splitted[i] in wordsArray){
//Add one to key value in wordarray
wordsArray[splitted[i]]++;
} else {
wordsArray[splitted[i]] = count;
}
}
}
var-wordsArray{};
var term=[“这是一个字符串”,“这是另一个字符串”];
对于(变量x=0;x
我将我的过程简单地放在上面,但作为进一步的背景,每个初始句子字符串都来自大量迭代的json文件,并且这个单词映射包括alljson文件的all句子。(我没有在这里包含此代码,因为我认为它对问题没有任何影响。)
这会对计数结果产生明显影响吗 您需要对术语中的每个元素应用拆分。换行
var splitted = term.split([" "]);
到
所以整个事情看起来像
var-wordsArray={};
var term=[“这是一个字符串”,“这是另一个字符串”];
对于(变量x=0;x log(wordsArray)
一个jQuery方法如下所示
var wordsArray = {};
var term = ["This is some string", "This is another string"];
$.each(term, function (index, value) {
var split = value.split(" ");
$.each(split, function (i, v) {
wordsArray[v] = v.length;
});
});
console.log(wordsArray);
这是一个独特的单词数组,关键字是单词,值是计数
输出示例:
Object {This: 4, is: 2, some: 4, string: 6, another: 7}
正如其他人提到的,您的示例代码是错误的:第4行应该是
var splitted = term[x].split([" "]); // term[x]
<>词条错误的原因可能是,你似乎只把空间看作定界符。
- 其他字符如点、逗号、制表符、换行符呢
- 大多数情况下,“this”和“this”是分开的词(区分大小写!)
例如:
var term = ["This is some string.", "this is \"another\" string?"];
产生
"another": 1
this: 1
This: 1
is: 2
some: 1
string.: 1
string?: 1
您能否提供一个“失败”字符串的示例,并描述所需的输出与生成的输出?为什么使用拆分([“”])
<代码>[“”]
被字符串化为“”
。所以只需使用split(“”
)即可。请注意{}
中的“toString”是正确的。。。您应该使用Object.create(null)
来创建单词。在控制台中抛出的代码中有一些明显的错误?找到了问题。添加到wordlist
的方法在错误的循环中,它只为1个json文件完成此操作,而不是全部。明显的错误。。。我想该睡觉了。我马上删除这个问题。