我有一个字符串列表,我想检查字符串是否包含特定的单词,如果它确实拆分了字符串中的所有单词并将其添加到关联数组中。
myString = ['RT @Arsenal: Waiting for the international', 'We’re hungry for revenge @_nachomonreal on Saturday\'s match and aiming for a strong finish']
wordtoFind = ['@Arsenal']
我想循环遍历wordtoFind,如果它在myString中,将myString拆分成单个单词并创建一个像
这样的对象 newWord = {@Arsenal:{RT:1},{Waiting:1},{for:1},{the:1},{international:1}}
for(z=0; z <wordtoFind.length; z++){
for ( i = 0 ; i < myString.length; i++) {
if (myString[i].indexOf(wordtoFind[z].key) > -1){
myString[i].split(" ")
}
我目前陷入困境,我不知道如何继续。
答案 0 :(得分:1)
你不能这样做。键值对象不按键排序。 看看Does JavaScript Guarantee Object Property Order
你可以把它变成一个排序的数组。
// Turn to array
var arr = [];
for(var key in mydict) {
arr.push({key: key, val: mydict[key]})
}
// Sort
arr.sort(function(a, b) {
return a.val - b.val;
})
答案 1 :(得分:1)
使用临时数组对值进行排序
var dict = { a: 5, b: 9, z: 21, n: 1, y: 0, g: 3, q: 6 }
var a = Object.keys(dict).map(e => ({ key: e, val: dict[e] }))
.sort((a, b) => a.val - b.val).slice(0, 5);
var r = {};
a.forEach(e => r[e.key] = e.val);
document.write(JSON.stringify(r));