首页 > 解决方案 > 显示不带括号的对象数组,但元素(包括逗号)必须保留

问题描述

所以,我有一个主要的大脑放屁。我正在尝试完成一个测试规范,并且需要的输出看起来像这样:

{"clojure": {"end": [10, 7], "start": [10, 1]}, "java": {"end": [11, 5], "start": [11, 2]}}

我有一个数组,我在其中动态添加对象。这是填充数组的代码:

function findHorizontal(word, grid){
let test = [];
    for(let i = 0; i < grid.length; i++){
        for(let j = 0; j < word.length; j++){
            if (grid[i].includes(word[j])){
                let row = grid.indexOf(grid[i]) + 1
                let firstLetter = grid[i].indexOf(word[j][0]) + 1
                let lastLetter = grid[i].lastIndexOf(word[j].split("")[word[j].split("").length - 1]) + 1
                    test.push({[word[j]]: {
                        start: [row, firstLetter],
                        end: [row, lastLetter]
                    }
                })
            }
        }
    }
    return test
}

这是测试的样子:

[{"clojure": {"end": [10, 7], "start": [10, 1]}}, {"java": {"end": [11, 5], "start": [11, 2]}}]

如您所见,上述输出和测试规范输出之间的唯一区别是数组中的括号。

我需要删除括号,显示对象并保留逗号。遍历测试数组只返回最后一个对象,如果我尝试通过另一个数组或变量检索对象,我会再次在同一条船上吗?

我在这里想念什么?

编辑:这是确切的测试规格。

标签: javascriptarraysobject

解决方案


您需要一个对象作为目标。

let test = {};

// later inside of the inner loop
test[word[j]] = { start: [row, firstLetter], end: [row, lastLetter] };

推荐阅读