の値に置き換えキーを大文字のカウンターパーツで置き換え、大文字に置き換えたら、配列をオブジェクトに変えて始めたので、何度も繰り返す必要はありませんでしたが、私は固執しました。誰かが最も効果的な方法でこれをどう扱うのか教えてください。キー/可能なキーのご使用量の更なる情報がないマッチJSONのキーとそう簡単なJSONオブジェクト</p> <pre><code>[ {"a": 1}, {"b": 2}, {"c": 3}, {"d": 4} ] </code></pre> <p>と私は下ケースに合わせて、最も効率的な機能を書きたい、この</p> <pre><code>var arr = ["A", "B", "C"]; </code></pre> <p>のような配列を指定して配列
-1
A
答えて
0
、汎用的なソリューションをしようとすると、このようになります:
var arr = [
{"a": 1},
{"b": 2},
{"c": 3},
{"d": 4}
]
var match = ["A", "B", "C"];
var objMatch = {}
for(var i=0;i<match.length;i++) objMatch[match[i].toLowerCase()] = match[i] // pass it to an object for efficient matching
for(var i=0;i<arr.length;i++){
for(var key in arr[i]){ // check if we need to replace the key
if(objMatch.hasOwnProperty(key)){
var temp = arr[i][key] // keep old value
delete arr[i][key] // delete key
arr[i][objMatch[key]] = temp // set new key with same old value
}
}
}
console.log(arr)
0
var a=[
{"a": 1},
{"b": 2},
{"c": 3},
{"d": 4}
];
var arr = ["A", "B", "C"];
は、オブジェクトのプロトタイプチェーン内のメソッドを定義します。オブジェクトキーの名前を変更する:
Object.prototype.changeKey = function (oName, nName) {
if (oName == nName) {
return this;
}
if (this.hasOwnProperty(oName)) {
this[nName] = this[oName];
delete this[oName];
}
return this;
};
は、その後、それを変更し、その後、配列の要素に一致するキーを検索します。ここでは
for(var i=0;i<arr.length;i++){
for(key in a[i]){
if(key === arr[i].toLowerCase()){a[i].changeKey (key,arr[i])}
}
}
は、あなたはすべての項目およびすべてのキーthrouヘルパーオブジェクトとループを使用することができますfiddle
0
です。
var arr0 = [{ "a": 1 }, { "b": 2 }, { "c": 3 }, { "d": 4 }],
arr1 = ["A", "B", "C"],
obj = Object.create(null);
arr1.forEach(function (a) {
obj[a.toUpperCase()] = a;
});
arr0.forEach(function (a) {
Object.keys(a).forEach(function (k) {
var v = a[k];
if (k.toUpperCase() in obj) {
delete a[k];
a[obj[k.toUpperCase()]] = v;
}
});
});
document.write('<pre>' + JSON.stringify(arr0, 0, 4) + '</pre>');
0
私はあなたの質問
var arrayOne = [
{"a": 1},
{"b": 2},
{"c": 3},
{"d": 4}
];
var arrayTwo = ["A", "B", "C"];
var tempArray = {};
$.each(arrayOne, function(key,value){
for(arrayOneKey in value){
$.each(arrayTwo, function(index,vl) {
if(vl.toLowerCase() == arrayOneKey.toLowerCase()){
tempArray[vl]=key+1;
}
});
}
});
console.log(tempArray);
+0
jQueryをバニラJSに書き直すことは、質問には触れられていないかもしれません。 – Andy
0
から理解して何から物事を複雑にしないでください。あなたはD ' `_除く_変更するすべてのキーのために期待している
function transform(arr, keys) {
return arr.map(function(el) {
var obj = {};
var key = Object.keys(el)[0];
var uc = key.toUpperCase();
obj[keys.indexOf(uc) > -1 ? uc : key] = el[key];
return obj;
});
}
transform(input, arr);
関連する問題
- 1. 私はAのシーケンスに基づいて数値ベクトルに変換したい</p> <pre><code>A <- c("A","A","B","B", "C","C","C", "D") </code></pre> <p>のようなベクトルを持って
- 2. のXpath - チェックすべての要素がサブ要素を持つ文書</p> <pre><code><a> <b> <c/> <d/> </b> <b> <c/> <d/> </b> </a> </code></pre> <p>考える
- 3. NGリピート:私はNGリピートを使用して、このようなテーブルを描きたい</p> <pre><code>{'A': 'L', 'B': 'L', 'C': 'G', 'D': 'L', 'E': 'G', 'F': 'L' } </code></pre> <p>、ここで</p> <pre><code>L G A C B E D F </code></pre> <p>:オブジェクト
- 4. はどのように、</p> <pre><code>f :: a -> b g :: b -> c h :: c -> d </code></pre> <p>ハスケル
- 5. なぜ[:] = 1は[:] = '1'と根本的に異なるのですか? <code>a</code>が<code>['1']</code>ある最初のケースで</p> <pre><code>a = [] a[:] = '1' </code></pre><p>と</p> <pre><code>a = [] a[:] = 1 </code></pre><p>:
- 6. 分割は私がカンマでスプリットを使用しました。..この配列に</p> <pre><code>["a", "b", "c"] </code></pre> <p>をこの文字列</p> <pre><code>"a,bc,c" </code></pre> <p>をオンにしようとしています
- 7. が動作していないよう<code>"a b"</code>から<code>"a b"</code></p> <pre><code>ssr["a b";"[ ]+";" "] </code></pre> <p>に取得するにはKDB +/Q
- 8. ドロップのは私が目標</p> <pre><code>1. A ⟹ B ⟹ C ⟹ D </code></pre> <p>を取得するには、次の補題</p> <pre><code>lemma "⟦ A; B; C ⟧ ⟹ D" </code></pre> <p>を表示したいとしましょうスタイル
- 9. 建設中の初期化?私は<code>a(c), b(a)</code>として<code>a</code>で<code>b</code>の初期化についてはよく分からない、今</p> <pre><code>struct A{ int a; int b; A(int c): a(c), b(a){ } }; int main() { A b(10); } </code></pre> <p>:
- 10. if(a-b <0)とif(a <b)の違い
- 11. Excelのmatch関数が正しくI Bは配列{ "A"、 "B"、 "C"、 "D"}の第2引数であるので、それは2を返すクエリ</p> <pre><code>=MATCH(TRUE, ISNUMBER(SEARCH({"a","b","c","d"}, "b")), 0) </code></pre> <p>以下作成した配列引数
- 12. これは、マップ<A、ペア<B, C>>
- 13. どのように私は私が始まるかどうかによってフィルタリングするbashの配列</p> <pre><code>X=("a" "b c" "-d" "k j", "-f") </code></pre> <p>があるとbashの配列
- 14. SymPy:私は<code>b + 2*a</code>を取得するために<code>a</code>と<code>b</code>を交換したいと思います</p> <pre><code>import sympy a = sympy.Symbol('a') b = sympy.Symbol('b') x = a + 2*b </code></pre> <p>のような式でスワップ二つの変数
- 15. など</p> <pre><code>1 int a; 2 MyC b; 3 YourC c; </code></pre> <p>、日食
- 16. レールは私のレール<b>application_helper.rb</b>ファイルで<%= >と<%== >
- 17. C#でSessionを使わずにBメソッドからAメソッドにデータを取得しますか?私は<code>C#</code>で<code>session</code>を使用せずに<b>get_data</b>方法に私の<b>master_handler</b><code>method</code> handler_responseデータを取得できますか
- 18. は、私は例が</p> <pre><code>COL1 COL2 A X A X A X A X A X B X B X B X C X C X C X </code></pre> <p>Iされて、私はタイプA、BおよびCを持つSQLデータベースから情報を取得しようとしている
- 19. Pythonの:働いている他の記事なしから</p> <pre><code>dict = {'A':0, 'B':1, 'C':2} </code></pre> <p>私が試してみました答え:のような辞書に</p> <pre><code>list = ['A','B','C'] </code></pre> <p>:私は次のリストを変換しようとしています
- 20. Pythonのnumpyの:私は<code>A</code>と<code>B</code>から直接<code>C</code>をしたいと思いますどのように二つの小さな配列
- 21. は2角度 -</p> <pre><code><a [routerLink]="[/Person']">Person</a> </code></pre> <p>、私は以下のように<code><a></code>タグを持っているルート
- 22. Pythonの:私は「B」を返すようにしたい</p> <pre><code>d = {'A': 2 , 'B': -4, 'C': 3} </code></pre> <p>:辞書
- 23. スカラ:ここ</p> <pre class="lang-py prettyprint-override"><code>def f((a, b)): return a + b d = (1, 2) f(d) </code></pre> <p>タプルに渡されては<code>f</code>に渡されながら分解されている:私はこれを行うことができますPythonで
- 24. Python dictの内容を複数の変数に同時に割り当てますか?私はこの</p> <pre><code>def f(): return { 'a' : 1, 'b' : 2, 'c' : 3 } { a, b } = f() # or { 'a', 'b' } = f() ? </code></pre> <p>すなわちような何かをしたいと思います
- 25. 条件で複数のa <= b <= cをテストする最も効率的な方法
- 26. 参加し、アレイ<code>c</code>を作るために2つの配列<code>a</code>と<code>b</code>を組み合わせることにより、2つのndarrays
- 27. なぜGCCはプライベートネストされたクラスから継承を許可していますか?プライベート入れ子になったクラスです<code>A::B</code>から</p> <pre><code>class A { class B {}; }; template <typename C> class D : A::B {}; void f() { D<int> d; } </code></pre> <p><code>D<int></code>継承:
- 28. マップキーを配列に変換するには?</p> <pre><code>let myMap = new Map().set('a', 1).set('b', 2); </code></pre> <p>そして、私は上記に基づいて、[「A」、「B」]を取得する:
- 29. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 30. <a href="http://codeforces.com/contest/659/problem/B" rel="nofollow">Problem</a>の配列
:
map
を使用して新しい配列を返しますか? – Andy