मेरे पास नीचे की तरह एक सरणी है मैं सरणी के अंदर वस्तु के अंदर शून्य को बदलकर कुछ मूल्य जोड़ने की कोशिश कर रहा हूं। मैं जो मान जोड़ना चाहता था वह अलग-अलग सरणी "y" से है

let toBesubmitted = [
        {a: null, id: "a"},
        {b: null, id: "b"},
        {c: null, id: "c"},
        {d: null, id: "d"},
        {e: null, id: "e"}
      ]

एक और सरणी

let y= ["apple", "ball", "cat", "dog", "elephant"]

मैं इसे कैसे प्राप्त कर सकता हूं?

3
Kiran Villa 6 सितंबर 2018, 14:20

6 जवाब

आप सरणी पर forEach लूप का उपयोग करके और y सरणी के एक विशिष्ट index पर item[item.id] गुण को मान निर्दिष्ट करके ऐसा कर सकते हैं:

let toBesubmitted = [
        {a: null, id: "a"},
        {b: null, id: "b"},
        {c: null, id: "c"},
        {d: null, id: "d"},
        {e: null, id: "e"}
      ]

let y= ["apple", "ball", "cat", "dog", "elephant"]

toBesubmitted.forEach((item, index) => item[item.id] = y[index]||null);

console.log(toBesubmitted)
3
Luca Kiebel 6 सितंबर 2018, 14:36
इसके साथ एकमात्र समस्या सूचकांक पर निर्भरता है। आराम अच्छा है। यदि सूचकांक बदलते हैं, तो यह विफल हो जाता है
 – 
AdityaParab
6 सितंबर 2018, 14:29
और आप इसे कैसे करेंगे?
 – 
ibrahim mahrir
6 सितंबर 2018, 14:30
यह सुनिश्चित करने के लिए कि यह विफल नहीं होता है, आप इसे बदलने का सुझाव कैसे देते हैं?
 – 
Luca Kiebel
6 सितंबर 2018, 14:30
मेरा जवाब जांचें।
 – 
AdityaParab
6 सितंबर 2018, 14:30
आपका उत्तर केवल तभी काम करता है जब ओपी वास्तव में किसी अन्य सरणी में किसी शब्द के पहले अक्षर के आधार पर वस्तुओं की एक सरणी बनाएगा, यह कैसे बेहतर है?
 – 
Luca Kiebel
6 सितंबर 2018, 14:32

एक साधारण लूप यह करेगा, यदि toBeSubmitted[0].a y[0] होना चाहिए और id संपत्ति हमें बताती है कि कौन सी संपत्ति सेट करनी है:

for (let i = 0; i < toBesubmitted.length; ++i) {
    toBesubmitted[i][toBesubmitted[i].id] = y[i];
}

उदाहरण:

let toBesubmitted = [
    {a: null, id: "a"},
    {b: null, id: "b"},
    {c: null, id: "c"},
    {d: null, id: "d"},
    {e: null, id: "e"}
];

let y = ["apple", "ball", "cat", "dog", "elephant"];

for (let i = 0; i < toBesubmitted.length; ++i) {
    toBesubmitted[i][toBesubmitted[i].id] = y[i];
}

console.log(toBesubmitted);
0
4 revs, 2 users 97% 6 सितंबर 2018, 14:56
2
- वाह, मुझे यह कैसे याद आया? फिक्स्ड, धन्यवाद !!
 – 
T.J. Crowder
6 सितंबर 2018, 14:25

हालांकि यह सबसे अच्छा जवाब नहीं है लेकिन इसे आजमाएं:

    //print object
toBesubmitted.forEach(function(element, key){
    for(let e in element){
        if(e == Object.keys(element)[0])
            element[e] = y[key];
    }
});
Console.log(toBesubmitted);
0
Stanley Aloh 6 सितंबर 2018, 19:04

मान लें कि toBesubmitted[index][key] y[index][0] है यह उत्तर किसी विशेष क्रम में अनुक्रमणिका पर निर्भर नहीं करता है।

let toBesubmitted = [
  { a: null, id: "a" },
  { b: null, id: "b" },
  { c: null, id: "c" },
  { d: null, id: "d" },
  { e: null, id: "e" }
];

let y= ["apple", "ball", "cat", "dog", "elephant"];

y.forEach( c => {
  const prop = toBesubmitted.find(tbs => tbs.id === c[0]);
  if(prop){
    prop[c[0]] = c;
  }
});
-1
AdityaParab 6 सितंबर 2018, 14:28
2
मेरा मानना ​​​​है कि वे ओपी द्वारा सिर्फ उदाहरण थे। y [ "aaa", "aaaa", "aaaaaa", "bbbb", "dog" ] हो सकते थे। मुझे नहीं लगता कि उन्हें पहले चरित्र के आधार पर सौंपा गया है।
 – 
ibrahim mahrir
6 सितंबर 2018, 14:33

आप नीचे दिए गए फ़ंक्शन को कम करने का भी उपयोग कर सकते हैं;

let toBesubmitted = [
{a: null, id: "a"},
{b: null, id: "b"},
{c: null, id: "c"},
{d: null, id: "d"},
{e: null, id: "e"}
];

let y = ["apple", "ball", "cat", "dog", "elephant"];

toBesubmitted.reduce( (acc,curr,idx) => curr[curr.id] = y[idx], {} );

console.log(toBesubmitted);
-1
Reza 6 सितंबर 2018, 14:59
लेकिन आप क्यों करेंगे? यहां कम करने का उपयोग करने का कोई कारण नहीं है।
 – 
Luca Kiebel
6 सितंबर 2018, 15:03
जेएस की मौजूदा क्षमताओं का उपयोग करते हुए, उच्च ऑर्डर फ़ंक्शन का उपयोग करते हुए, इसमें छोटा सिंटैक्स है ...
 – 
Reza
6 सितंबर 2018, 15:06
जेएस की मौजूदा क्षमताओं का उपयोग करना एक साधारण लूप का उपयोग करना होगा। वाक्य-विन्यास भी लूप का उपयोग करने वाले अन्य उत्तरों से छोटा नहीं है।
 – 
Luca Kiebel
6 सितंबर 2018, 15:07
आप अधिकांश अन्य एरो फ़ंक्शंस का भी उपयोग कर सकते हैं, लेकिन यह वास्तव में एक उत्तर की गारंटी नहीं देता है। इन कार्यों का अपना समय और स्थान होता है, लेकिन यह वास्तव में यहां नहीं है। बस इसे स्पष्ट करने के लिए, मैंने आपके उत्तर को कम नहीं किया।
 – 
Luca Kiebel
6 सितंबर 2018, 15:13

संपादित

let toBesubmitted = [
    {a: null, id: "a"},
    {b: null, id: "b"},
    {c: null, id: "c"},
    {d: null, id: "d"},
    {e: null, id: "e"}
]

let y= ["apple", "ball", "cat", "dog", "elephant"]

toBesubmitted.forEach((item, index) => {
    Object.keys(item).forEach(key => {
        if (item[key] === null) {
            item[key] = y[index];
        }
    })
})

console.log(toBesubmitted);
-2
cgdannie 6 सितंबर 2018, 14:34
1
null प्रॉपर्टी हमेशा a नहीं होती है।
 – 
ibrahim mahrir
6 सितंबर 2018, 14:25