1

ローカル ストレージのすべてのキーを取得し、メールで送信する機能があります。

function sendLocalStorageByEmail(recipient) {
// create localstorage string
var output = "";


for (var key in localStorage) {
    output += key + "\n";
    output += localStorage[key] + "\n";
    output += "\n";
}

// create temporary anchor to emulate mailto click in new tab
var anchor = document.createElement("a");
anchor.href = "mailto:" + recipient + "?subject=Names for tonight&body=" + encodeURIComponent(output);
anchor.style.display = "none";
anchor.setAttribute("target", "_blank");
anchor.appendChild(document.createTextNode(""));
document.body.appendChild(anchor);

if (anchor.click) {
    return anchor.click();
}

キーは 4 桁の数字なので、最初に番号順にソートしたいと思います。私の質問は、 localstorage データが文字列として保存され、ほとんどの並べ替えが配列を介して行われるためです。それを配列に変換してから、もう一度戻す必要がありますか?

誰かがこれで私を助けることができれば、それは大歓迎です。

4

2 に答える 2

2
function sendLocalStorageByEmail(recipient) {
    var output = '',
        arr = [],
        anchor = document.createElement("a");

    for (key in localStorage) {
        if (localStorage.hasOwnProperty(key) && !isNaN(key)) {
            arr.push(key);
        }
    }

    arr.sort(function(a, b) {
        return a.toLowerCase().localeCompare(b.toLowerCase());
    });

    for (var i=0; i<arr.length; i++) {
        output += arr[i] + "\n" + localStorage[arr[i]] + "\n\n";
    }

    anchor.href = "mailto:" + recipient + "?subject=Names for tonight&body=" + encodeURIComponent(output);
    anchor.style.display = "none";
    anchor.setAttribute("target", "_blank");
    anchor.appendChild(document.createTextNode(""));
    document.body.appendChild(anchor);

    if (anchor.click) {
        return anchor.click();
    }
}​
于 2012-12-07T04:32:15.400 に答える
1

あなたはこのように試すことができるかもしれません:-

var output = [];

for (var key in localStorage) {
    output.push(localStorage[key]);
}
output.sort();
var result=output.join();
var len = result.length;
var formatresult;
for (var i=0; i<len; i++) {
formatresult+= result[i]+ "\n";
}
于 2012-12-07T04:08:10.480 に答える