如何将所有 Javascript 数组数据显示为字符串

How To Display All Javascript Array Data as a string

我在 Javascript 中有一个二维数组,我想将其显示为用户的字符串,并希望添加稍后读取另一个数组的能力(有效地尝试保存和加载所有对象在数组中)。

老实说,我完全不知道文件编码,但到目前为止我已经尝试了 keyframes.toString()keyframes.frame.join() 无济于事。

给我的唯一输出是 [object Object]。这让我觉得处理二维数组不同于简单的值列表,但就像我说的,我真的不知道..

如何在 Javascript 中将数组显示为纯文本?

我认为您需要先 "flatten" 数组。

var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
  return a.concat(b);
});
// flattened is [0, 1, 2, 3, 4, 5]

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

查看此代码:

function join2DArray(arr,sep1,sep2)
    {
    if (sep1 == undefined || sep1 == null) sep1 = "";
    if (sep2 == undefined || sep2 == null) sep2 = "";
    for (var i=0;i<arr.length;i++)
        {
        if (arr[i].join) arr[i] = arr[i].join(sep2);
        }
    return arr.join(sep1);
    }

function split2DArray(str,sep1,sep2)
    {
    if (sep1 == undefined || sep1 == null) sep1 = "";
    if (sep2 == undefined || sep2 == null) sep2 = "";
    var arr = str.split(sep1);
    for (var i=0;i<arr.length;i++) arr[i] = arr[i].split(sep2);
    return arr;
    }

var my_arr = [[1,2,3],[4,5,6],[7,8,9]];
var my_arr_joined = join2DArray(my_arr,"|",",");
alert(my_arr_joined);
var my_arr_resplit = split2DArray(my_arr_joined,"|",",");
alert(my_arr_resplit[0][1]);

希望它能让您深入了解如何为您的代码执行此操作。

使用这个功能

如果你想用一个特殊的字符或字符串加入str参数

function joinArray(arr, str)
{
    if (str == undefined || str == null) str= "";
    for (var i=0;i<arr.length;i++)
        if (arr[i].join) arr[i] = joinArray(arr[i], str);
    return arr.join(str);
}

一样使用它
var output = joinArray(keyframes);

JSFiddle

如果您只想要数组的字符串表示,您可以尝试使用 JSON.stringify。这是一个 jsfiddle http://jsfiddle.net/bkr4qc3u/1/