在javascript中从文件中读取坐标

时间:2018-01-28 03:26:18

标签: javascript string file coordinates

我在javascript中使用

打开文件
fs.readFileSync(fileName)

将其返回给客户端之后,它就像这样存储:

[G]Hey, where did [C]we go, da[G]ys when the ra[D]ins came
[G]Down in the holl[C]ow, [G]playin' a ne[D]w game

但是,我需要x和y坐标,以便我可以更新画布。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果我们假设第一个字符的位置为{x: 0, y: 0},并且下一行将y位置递增1,那么我们可以使用类似的东西来计算字符的位置:

/**
 * Find the XY positions of this string
 *
 * @type {string}
 */
const given = `[G]Hey, where did [C]we go, da[G]ys when the ra[D]ins came
[G]Down in the holl[C]ow, [G]playing a ne[D]w game`;

/**
 * Return the coordinates of the characters in a string
 *
 * @param {string} string
 * @returns {Array}
 */
const calculateXY = (string) => {
    const positions = [];
    let yIndex = 0;
    let xIndex = 0;

    string.split('').forEach(character => {
        if(/\n/g.test(character)) {
            yIndex++;
            xIndex = 0;
        } else {
            positions.push({ [character]: { x: xIndex, y: yIndex}});
        }

        xIndex++;
    });

    return positions;
};

const result = calculateXY(given);
console.log(result);

您可以修改上面的块,传递一个乘数,使x和y以像素到下一个字符的距离递增。