在javascript中创建一个多维关联数组

时间:2016-03-30 13:22:02

标签: javascript object

我有一个字符串列表,我想检查字符串是否包含特定的单词,如果它确实拆分了字符串中的所有单词并将其添加到关联数组中。

   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(" ")

             }

我目前陷入困境,我不知道如何继续。

2 个答案:

答案 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));