জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারে থেকে অবজেক্ট সরান


545

আমি কীভাবে কোনও অ্যারে থেকে কোনও জিনিস সরিয়ে ফেলতে পারি? আমি বস্তুর নাম অন্তর্ভুক্ত মুছে ফেলার Kristianথেকে someArray। উদাহরণ স্বরূপ:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

আমি অর্জন করতে চাই:

someArray = [{name:"John", lines:"1,19,26,96"}];


3
এফওয়াইআই আমি এই প্রশ্নে সম্পাদনাটি ফিরিয়ে দিয়েছি যাতে অ্যারে সিনট্যাক্সটি আবার ভুল হয়, এবং এই উত্তরগুলির সমস্ত প্রসঙ্গে হয়।
ডানহ্যাম্জেজ

2
এবং তারপরে অ্যারে সিনট্যাক্সটি আবার "সংশোধন" করা হয়েছিল (দ্বিগুণ), যাতে উত্তর আর প্রসঙ্গে নেই।
Teepeemm

4
সিনট্যাক্স ত্রুটি কিছু উত্তরকে কীভাবে বোঝাতে সহায়তা করে?
স্যামি বেঞ্চেরিফ

1
@ সামিবেঞ্চিরিফ - কয়েকটি প্রশ্নের উত্তর স্পষ্টভাবে প্রশ্নের মূল সংস্করণে বাক্যবিন্যাসের ত্রুটিটিকে সম্বোধন করে, সুতরাং যদি আপনি সেই বাক্য গঠন ত্রুটিটি সরিয়ে থাকেন তবে সেই উত্তরগুলি এখন এমন কিছু বিষয়ে কথা বলছে যা বিদ্যমান নেই।
nnnnnn

উত্তর:


778

আপনি অ্যারে থেকে আইটেমগুলি গুলি সরানোর জন্য বিভিন্ন পদ্ধতি ব্যবহার করতে পারেন:

//1
someArray.shift(); // first element removed
//2
someArray = someArray.slice(1); // first element removed
//3
someArray.splice(0, 1); // first element removed
//4
someArray.pop(); // last element removed
//5
someArray = someArray.slice(0, a.length - 1); // last element removed
//6
someArray.length = someArray.length - 1; // last element removed

আপনি যদি অবস্থানটিতে উপাদানটি সরাতে চান তবে xব্যবহার করুন:

someArray.splice(x, 1);

অথবা

someArray = someArray.slice(0, x).concat(someArray.slice(-x));

@ Chill182 এর মন্তব্যে জবাব দিন : আপনি একটি অ্যারে থেকে এক বা একাধিক উপাদান মুছে ফেলতে পারেন Array.filter, বা Array.spliceমিলিত Array.findIndex( এমডিএন দেখুন ) সহ, উদাহরণস্বরূপ

// non destructive filter > noJohn = John removed, but someArray will not change
let someArray = getArray();
let noJohn = someArray.filter( el => el.name !== "John" ); 
log("non destructive filter > noJohn = ", format(noJohn));
log(`**someArray.length ${someArray.length}`);

// destructive filter/reassign John removed > someArray2 =
let someArray2 = getArray();
someArray2 = someArray2.filter( el => el.name !== "John" );
log("", "destructive filter/reassign John removed > someArray2 =", 
  format(someArray2));
log(`**someArray2.length ${someArray2.length}`);

// destructive splice /w findIndex Brian remains > someArray3 =
let someArray3 = getArray();
someArray3.splice(someArray3.findIndex(v => v.name === "Kristian"), 1);
someArray3.splice(someArray3.findIndex(v => v.name === "John"), 1);
log("", "destructive splice /w findIndex Brian remains > someArray3 =", 
  format(someArray3));
log(`**someArray3.length ${someArray3.length}`);

// Note: if you're not sure about the contents of your array, 
// you should check the results of findIndex first
let someArray4 = getArray();
const indx = someArray4.findIndex(v => v.name === "Michael");
someArray4.splice(indx, indx >= 0 ? 1 : 0);
log("", "check findIndex result first > someArray4 (nothing is removed) > ",
  format(someArray4));
log(`**someArray4.length (should still be 3) ${someArray4.length}`);

function format(obj) {
  return JSON.stringify(obj, null, " ");
}

function log(...txt) {
  document.querySelector("pre").textContent += `${txt.join("\n")}\n`
}

function getArray() {
  return [ {name: "Kristian", lines: "2,5,10"},
           {name: "John", lines: "1,19,26,96"},
           {name: "Brian", lines: "3,9,62,36"} ];
}
<pre>
**Results**

</pre>


2
@ ক্লেমিজি আপনি কি সূচী দ্বারা বোঝাতে চান নি? মান দ্বারা ...?
রই নমির

327
মূল প্রশ্নটি জিজ্ঞাসা করল কীভাবে অ্যারে থেকে = "ক্রিশ্চিয়ান" নাম সহ বস্তুটি সরিয়ে ফেলা যায়। আপনার উত্তর ধরে নিয়েছে এটি অ্যারের মধ্যে প্রথম আইটেম তবে ক্রিস্টিন যদি প্রথম আইটেমে না থাকে? তাহলে আপনার উত্তর কাজ করে না।
রোশেল সি

7
@ chill182: এটি কোনও নির্দিষ্ট উত্তর নয়, তবে আরও সাধারণ। এটি থেকে, উপাদানগুলি সরানোর জন্য আপনার পদ্ধতিটি অনুমান করতে সক্ষম হওয়া উচিত। আপনি যদি অবস্থানের x এ উপাদানটি সরাতে চান ... তবে প্রথম উপাদানগুলি বাদ দিয়ে অন্যগুলি সরিয়ে ফেলার ইঙ্গিত হতে পারে, তাই না?
KooiInc

6
স্প্লাইস ফাংশনটি আমার পক্ষে সহায়ক ছিল, তবে আপনার কোনও অ্যারিকে পুনরায় নিয়োগ করা উচিত হয়নি। এর ফলে মুছে ফেলা আইটেমটি সহ কিছু অ্যারির পরিবর্তে আইটেমটি অপসারণের ফলে ফলাফলযুক্ত অ্যারে যুক্ত হবে।
কেন Cal Cal

1
findIndexফলাফলটি ব্যবহারের আগে আপনার এটি পরীক্ষা করা উচিত splice। অ্যারেতে কোনও উপাদান নেই যা শর্তটির সাথে মেলে এবং findIndexফিরে এলে -1এটি সরাসরি প্রবেশ spliceকরলে অ্যারেতে সর্বশেষ উপাদানটির সালিসি মুছে ফেলা হবে।
jdnz

131

আমি এই জাতীয় সাধারণ কাজের জন্য লড্যাশ.জে বা চিনি.জেএস ব্যবহার করার পরামর্শ দিচ্ছি :

// lodash.js
someArray = _.reject(someArray, function(el) { return el.Name === "Kristian"; });

// sugar.js
someArray.remove(function(el) { return el.Name === "Kristian"; });

বেশিরভাগ প্রকল্পে, সাহায্যকারী পদ্ধতির একটি সেট থাকা যেমন লাইব্রেরি দ্বারা সরবরাহ করা যথেষ্ট দরকারী useful


13
আমি মনে করি আন্ডারস্কোর উদাহরণটি কিছুটা বন্ধ। হওয়া উচিতsomeArray = _.reject(someArray, function(el) { return el.Name === "Kristian"; });
অ্যান্ডি ফোর্ড

7
আপনি যদি আন্ডারস্কোর.জেএস বা সুগার.জেএস ব্যবহার করতে না চান তবে আপনি এটি করতে পারেনsomeArray = someArray.filter(function(e) { return e.Name !== "Kristian"; });
বেনআর

1
আমি চাই অন্য জিনিস, অ্যারে প্রতিটি বস্তুর জন্য পৃথক বাটন থাকবে। আমি যদি অ্যারে বাটনে ক্লিক করে সেই নির্দিষ্ট অবজেক্টটি মুছতে চাই। এটা কিভাবে করতে হবে . আমি আইটেম তৈরি করতে কৌণিক জেএস এনজি-রিপিট ব্যবহার করেছি। আপনি কি আমাকে সাহায্য করতে পারেন
21:36

5
এখানে শস্যের বিপরীতে যেতে; বিষয়বস্তু থেকে আইটেমগুলি সরানোর সহজ উদ্দেশ্যে একটি সম্পূর্ণ লাইব্রেরি অন্তর্ভুক্ত করার পরামর্শ দেওয়া হয়েছে (যা জেএস পরিষ্কারভাবে বাক্সের বাইরে সমর্থন করে, যেমন স্বীকৃত উত্তরগুলি দেখায়) খারাপ রূপ। এটি আপনার কোডটিতে অপ্রয়োজনীয় ওজন এবং জটিলতা যুক্ত করে যদি আপনার গ্রন্থাগারের সরবরাহ করা আরও শক্তিশালী কার্যকারিতার জন্য ইতিমধ্যে এটির প্রয়োজন হয় না।
জোশ ডয়েবার্ট

4
সাধারণ ক্রিয়াকলাপের জন্য, আমি কখনই লাইব্রেরি অন্তর্ভুক্ত করার পরামর্শ দেব না
মুন্না ভক্ত

130

পরিষ্কার সমাধানটি ব্যবহার করা হবে Array.filter:

var filtered = someArray.filter(function(el) { return el.Name != "Kristian"; }); 

এটির সাথে সমস্যাটি হ'ল এটি আই <9.। এ কাজ করে না তবে যাইহোক, আপনি জাভাস্ক্রিপ্ট লাইব্রেরি থেকে কোড অন্তর্ভুক্ত করতে পারেন (যেমন আন্ডারস্কোর.জেএস ) যা কোনও ব্রাউজারের জন্য এটি কার্যকর করে।


9
এটি তবে পাওয়া সমস্ত ঘটনাগুলি সরিয়ে ফেলবে, কেবল প্রথমটি নয়
ফ্ল্যাভিয়ান ভলকেন

4
এবং এটি আসলটি পরিবর্তনের পরিবর্তে নতুন অ্যারে ফিরিয়ে দেবে। ব্যবহারের ক্ষেত্রে উপর নির্ভর করে, এটি আপনি যা চান তা হতে পারে বা নাও পারে।
জোচি নবুর্স

1
@ জোচিনাবুউরাস এটি সত্যিই একটি নতুন অ্যারে। তবে বস্তুটি একই থাকে remains আপনি এখনও প্রতিটি বস্তুর মান পরিবর্তন করতে পারেন এবং এটি মূল অ্যারের বস্তুর প্রতিফলিত হবে।
DriLLFreAK100

2
এই একটি নতুন অ্যারে ফেরত সম্পর্কে বিন্দু, ঠিক ঠিক someArray = someArray.filter(function(el) { return el.Name != "Kristian"; }); ঠিকানা ঠিকানা পরিবর্তন যে, না?
এইচব্রেন্ট

93

এ কেমন?

$.each(someArray, function(i){
    if(someArray[i].name === 'Kristian') {
        someArray.splice(i,1);
        return false;
    }
});

8
কোনও ত্রুটির কারণ হবে না কারণ $.each()লুপিংয়ের আগে অ্যারের দৈর্ঘ্যটি ক্যাশে করে যদি আপনি কোনও উপাদান অপসারণ $.each()করেন তবে (এখন ছোট) অ্যারের শেষটি চলে যাবে past (সুতরাং তখন someArray[i]হবে undefinedএবং undefined.nameক্রাশ হবে))
nnnnnn

5
তারপরে স্প্লাইসের পরে একটি 'রিটার্ন মিথ্যা' যুক্ত করুন।
অ্যালান টেলর

18
এটি জাভাস্ক্রিপ্ট নয়। -1
পেঁয়াজসি 17

20
দয়া করে নোট করুন যে এই উত্তরটির জন্য jQuery প্রয়োজন
ক্লার্কি

68

প্রদর্শিত হিসাবে আপনার "অ্যারে" অবৈধ জাভাস্ক্রিপ্ট সিনট্যাক্স। কোঁকড়ানো বন্ধনীগুলি {}সম্পত্তির নাম / মান জোড়া যুক্ত বস্তুর জন্য, তবে বর্গাকার বন্ধনী []অ্যারেগুলির জন্য - যেমন:

someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];

সেক্ষেত্রে আপনি কোনও আইটেম সরানোর জন্য .splice()পদ্ধতিটি ব্যবহার করতে পারেন । প্রথম আইটেমটি মুছে ফেলতে (সূচক 0), বলুন:

someArray.splice(0,1);

// someArray = [{name:"John", lines:"1,19,26,96"}];

আপনি যদি সূচকটি জানেন না তবে অ্যারে দিয়ে অনুসন্ধান করতে চান তবে "ক্রিশ্চিয়ান" নামের আইটেমটি খুঁজে পেতে আপনি এটি করতে পারেন:

for (var i =0; i < someArray.length; i++)
   if (someArray[i].name === "Kristian") {
      someArray.splice(i,1);
      break;
   }

সম্পাদনা: আমি সবেমাত্র লক্ষ্য করেছি যে আপনার প্রশ্নটি "jQuery" দিয়ে ট্যাগ করা আছে, তাই আপনি $.grep()পদ্ধতিটি চেষ্টা করতে পারেন :

someArray = $.grep(someArray,
                   function(o,i) { return o.name === "Kristian"; },
                   true);

কেন তারা ওভারলোড যুক্ত করলেন? অবশ্যই আপনি স্রেফ রাখতে পারতেন! = "ক্রিশ্চিয়ান"। ওভারলোড কী উদ্দেশ্যে কাজ করে?
করুনহিজার্ড 1234

@ চিহ্নিত করুনহিজার্ড 1234 - আপনি কি "উল্টানো" বুলিয়ান যুক্তিকে বোঝাতে চাইছেন $.grep()? এটি এই উদাহরণে খুব বেশি যোগ করে না, যেখানে হ্যাঁ, আমি রাখতে পারতাম !=তবে অন্য ক্ষেত্রে আপনি ইতিমধ্যে একটি ফাংশন সংজ্ঞায়িত করতে পেরেছেন যা আপনি গ্রেপ করতে চান তার বিপরীত পরীক্ষা করার জন্য ঘটে থাকে, সুতরাং তারপরে কোনও সংজ্ঞা না দিয়ে অতিরিক্ত ক্রিয়াকলাপ আপনি ফলাফলগুলি উল্টাতে কেবল সেই ওভারলোডটি ব্যবহার করতে পারেন।
nnnnnn

আহ, সুতরাং যদি আপনার গ্রিপযুক্ত একটি মোড়ক ফাংশন থাকে তবে আপনি বুলিয়ানটিকে প্যারামিটার হিসাবে সেট করতে পারেন। বুঝেছি ধন্যবাদ!
করুনহিজার্ড 1234

@ মার্কথিজাইজার্ড १२৪৪ - আপনি পারতেন, তবে আমার মনে যে তা ছিল তা নয়: কল্পনা করুন আপনার ছিল function isEven(num) { return num%2===0 }। আপনি $.grep(someArray, isEven)অ্যারে থেকে কেবল সমান সংখ্যাগুলি পেতে, বা $.grep(someArray, isEven, true)বিপরীতে করতে এবং অ-সম-মানগুলি পেতে ব্যবহার করতে পারেন ।
nnnnnn

63

ES2015

let someArray = [
               {name:"Kristian", lines:"2,5,10"},
               {name:"John", lines:"1,19,26,96"},
               {name:"Kristian", lines:"2,58,160"},
               {name:"Felix", lines:"1,19,26,96"}
            ];

someArray = someArray.filter(person => person.name != 'John');

এটি জনকে সরিয়ে দেবে !


4
মানুষ ... জাভা থেকে আগত, আমি চূড়ান্তভাবে বিভ্রান্ত হয়েছি যে এই জাতীয় প্রাথমিক কাজটি করার জন্য একটি তালিকার ফিল্টারিং প্রয়োজন ... wtf। এটি আমি এখনও অবধি পড়েছি ওপিএস প্রশ্নের সবচেয়ে সঠিক উত্তর।
কোডপ্লেব

হ্যাঁ, এটি একটি ভাল পদ্ধতির। যদিও এটি ES2015 (ES6) এর আগেও কাজ করবে। ফিল্টার ফাংশনটি 5.1 (2011) সংস্করণ থেকে পাওয়া গেছে ecma-international.org/ecma-262/5.1/#sec-15.4.4.20
user3777549

40

আপনি অ্যারে.ফিল্টার () ব্যবহার করতে পারেন।

যেমন

        someArray = [{name:"Kristian", lines:"2,5,10"},
                     {name:"John", lines:"1,19,26,96"}];

        someArray = someArray.filter(function(returnableObjects){
               return returnableObjects.name !== 'Kristian';
        });

        //someArray will now be = [{name:"John", lines:"1,19,26,96"}];

তীর ফাংশন:

someArray = someArray.filter(x => x.name !== 'Kristian')

আমি চাই অন্য জিনিস, অ্যারে প্রতিটি বস্তুর জন্য পৃথক বাটন থাকবে। আমি যদি অ্যারে বাটনে ক্লিক করে সেই নির্দিষ্ট অবজেক্টটি মুছতে চাই। এটা কিভাবে করতে হবে . আমি আইটেম তৈরি করতে কৌণিক জেএস এনজি-রিপিট ব্যবহার করেছি। আপনি কি আমাকে সাহায্য করতে পারেন
21:36

দাচোদা আপনার যদি দুটি শর্ত থাকে?
ম্যালকম সালভাদোর

@ মালকোলমসালভাদোর উদাহরণস্বরূপ বলুন আপনার যদি আরও শর্ত থাকে তবে নীচের মতো এটি লিখতে পারেন এবং বিভিন্ন && বা চালিয়ে যেতে পারেন || আপনার প্রয়োজন অনুযায়ী অপারেটর। someArray = someArray.filter (ফাংশন (রিটার্নযোগ্যঅবজেক্টস) {রিটার্নযোগ্যableObjects.name! == 'ক্রিশ্চিয়ান' && cond2Query.age> = 22;;);
বিশ্বজিৎ পান্ডে

18

আমি একটি গতিশীল ফাংশন তৈরি করেছি অ্যারে, কী এবং মান অবজেক্টগুলি নিয়ে এবং পছন্দসই বস্তুটি সরানোর পরে একই অ্যারেটি প্রদান করে:

function removeFunction (myObjects,prop,valu)
        {
             return myObjects.filter(function (val) {
              return val[prop] !== valu;
          });

        }

সম্পূর্ণ উদাহরণ: ডেমো

var obj = {
            "results": [
              {
                  "id": "460",
                  "name": "Widget 1",
                  "loc": "Shed"
              }, {
                  "id": "461",
                  "name": "Widget 2",
                  "loc": "Kitchen"
              }, {
                  "id": "462",
                  "name": "Widget 3",
                  "loc": "bath"
              }
            ]
            };


        function removeFunction (myObjects,prop,valu)
        {
             return myObjects.filter(function (val) {
              return val[prop] !== valu;
          });

        }


console.log(removeFunction(obj.results,"id","460"));

15

এটি আমার জন্য কাজ করে এমন একটি ফাংশন:

function removeFromArray(array, value) {
    var idx = array.indexOf(value);
    if (idx !== -1) {
        array.splice(idx, 1);
    }
    return array;
}

আমি চাই অন্য জিনিস, অ্যারে প্রতিটি বস্তুর জন্য পৃথক বাটন থাকবে। আমি যদি অ্যারে বাটনে ক্লিক করে সেই নির্দিষ্ট অবজেক্টটি মুছতে চাই। এটা কিভাবে করতে হবে . আমি আইটেম তৈরি করতে কৌণিক জেএস এনজি-রিপিট ব্যবহার করেছি। আপনি কি আমাকে সাহায্য করতে পারেন
থিলক রাজ

12

আপনিও এরকম কিছু করার চেষ্টা করতে পারেন:

var myArray = [{'name': 'test'}, {'name':'test2'}];
var myObject = {'name': 'test'};
myArray.splice(myArray.indexOf(myObject),1);


10

অ্যারেগুলিতে স্প্লাইস ফাংশনটি ব্যবহার করুন। প্রারম্ভিক উপাদানটির অবস্থান এবং আপনি যে অনুমানেরটি সরাতে চান তার দৈর্ঘ্য উল্লেখ করুন।

someArray.splice(pos, 1);

8

অ্যারে সহ সাধারণ কাজের জন্য আন্ডারকোরজেএসকে ভোট দিন ।

_.বিহীন () ফাংশনটি কোনও উপাদান অপসারণ করতে সহায়তা করে:

 _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
    => [2, 3, 4]

সবচেয়ে ভালো সমাধান. অবজেক্ট অ্যারে নিয়ে কাজ করে।
আজি

4

ইএস 6 তীর ফাংশন সহ

let someArray = [
                 {name:"Kristian", lines:"2,5,10"},
                 {name:"John", lines:"1,19,26,96"}
                ];
let arrayToRemove={name:"Kristian", lines:"2,5,10"};
someArray=someArray.filter((e)=>e.name !=arrayToRemove.name && e.lines!= arrayToRemove.lines)

3

সবচেয়ে সহজ সমাধান হ'ল এমন একটি মানচিত্র তৈরি করা যা প্রতিটি বস্তুর নাম অনুসারে সূচকগুলি সংরক্ষণ করে:

//adding to array
var newPerson = {name:"Kristian", lines:"2,5,10"}
someMap[ newPerson.name ] = someArray.length;
someArray.push( newPerson );

//deleting from the array
var index = someMap[ 'Kristian' ];
someArray.splice( index, 1 );

আমি এই ধারণাটি পছন্দ করি, তবে অবশ্যই জিজ্ঞাসা করতে হবে, সূচকগুলি যুক্ত হওয়ার সাথে সাথে এই জাতীয় ধারণার জন্য মেমরির ব্যবহারের সীমাগুলি কী কী? আমার একটি অ্যারে রয়েছে যে আমি অবজেক্টের 2 টি আলাদা ক্ষেত্রের সূচী করতে চাই, সুতরাং আমার কাছে মূল উত্স অ্যারে ছাড়াও 2 টি মানচিত্র থাকবে। দেখার গতির জন্য অর্থ প্রদানের জন্য এটি কি খুব কম দাম বা স্মরণে আরও কার্যকর হবে এমন কোনও সমাধান রয়েছে?
ব্র্যাড জি।

3

যদিও এই পরিস্থিতির জন্য এটি সম্ভবত যথাযথ নয় তবে আমি অন্যদিন জানতে পেরেছিলাম যে deleteঅ্যারের আকার পরিবর্তন করতে যদি আপনার প্রয়োজন না হয় তবে আপনি একটি অ্যারে থেকে কোনও আইটেম সরিয়ে ফেলতে কীওয়ার্ডটিও ব্যবহার করতে পারেন eg

var myArray = [1,2,3];

delete myArray[1];

console.log(myArray[1]); //undefined

console.log(myArray.length); //3 - doesn't actually shrink the array down

3

এই উত্তর

for (var i =0; i < someArray.length; i++)
   if (someArray[i].name === "Kristian") {
      someArray.splice(i,1);
   }

শর্ত পূরণ করে একাধিক রেকর্ডের জন্য কাজ করছে না। আপনার যদি এ জাতীয় দুটি ধারাবাহিক রেকর্ড থাকে তবে কেবল প্রথমটি সরানো হবে এবং অন্যটি বাদ পড়ে। আপনাকে ব্যবহার করতে হবে:

for (var i = someArray.length - 1; i>= 0; i--)
   ...

পরিবর্তে .


2

আপনার অ্যারে সিনট্যাক্সে একটি ত্রুটি আছে বলে মনে হচ্ছে সুতরাং আপনি কোনও অ্যারের বিপরীতে অ্যারে বোঝাচ্ছেন, অ্যারে.স্প্লাইস এখানে আপনার বন্ধু:

someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];
someArray.splice(1,1)

2

আপনি মানচিত্রের ফাংশনটিও ব্যবহার করতে পারেন ।

someArray = [{name:"Kristian", lines:"2,5,10"},{name:"John",lines:"1,19,26,96"}];
newArray=[];
someArray.map(function(obj, index){
    if(obj.name !== "Kristian"){
       newArray.push(obj);
    }
});
someArray = newArray;
console.log(someArray);

1
তবে আপনি যদি অ্যারের মাধ্যমে পুনরাবৃত্তি করতে চান, তবে প্রতিটি জন্য ব্যবহার করা ভাল না?
corse32

2

আপনি এটি ব্যবহার করতে পারেন some:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

someArray.some(item => { 
    if(item.name === "Kristian") // Case sensitive, will only remove first instance
        someArray.splice(someArray.indexOf(item),1) 
})

2

এটিই আমি ব্যবহার করি।

Array.prototype.delete = function(pos){
    this[pos] = undefined;
    var len = this.length - 1;
    for(var a = pos;a < this.length - 1;a++){
      this[a] = this[a+1];
    }
    this.pop();
  }

তারপরে বলা সহজ সরল

var myArray = [1,2,3,4,5,6,7,8,9];
myArray.delete(3);

তিনটির জায়গায় যে কোনও সংখ্যা প্রতিস্থাপন করুন। প্রত্যাশিত আউটপুট হওয়া উচিত:

console.log(myArray); //Expected output 1,2,3,5,6,7,8,9

2

আপনি যদি কোনও প্রদত্ত বস্তুর সমস্ত উপস্থিতি (কিছু শর্তের ভিত্তিতে) সরাতে চান তবে লুপটির জন্য জাভাস্ক্রিপ্ট স্প্লাইস পদ্ধতিটি ব্যবহার করুন।

যেহেতু কোনও বস্তু সরানো অ্যারের দৈর্ঘ্যে প্রভাব ফেলবে তাই কাউন্টারকে এক ধাপ হ্রাস করতে নিশ্চিত করুন, যাতে দৈর্ঘ্যের চেক অক্ষত থাকে।

var objArr=[{Name:"Alex", Age:62},
  {Name:"Robert", Age:18},
  {Name:"Prince", Age:28},
  {Name:"Cesar", Age:38},
  {Name:"Sam", Age:42},
  {Name:"David", Age:52}
];

for(var i = 0;i < objArr.length; i ++)
{
  if(objArr[i].Age > 20)
  {
    objArr.splice(i, 1);
    i--;  //re-adjust the counter.
  }
}

উপরের কোড স্নিপেট 20 বছরের বেশি বয়সী সমস্ত বস্তু সরিয়ে দেয়।



1

স্প্লাইস (i, 1) যেখানে আমি অ্যারের ইনক্রিমেন্টাল ইনডেক্সটি বস্তুটি সরিয়ে ফেলব। তবে মনে রাখবেন স্প্লাইস অ্যারের দৈর্ঘ্যও পুনরায় সেট করবে তাই 'অপরিজ্ঞাত' জন্য নজর রাখুন। আপনার উদাহরণটি ব্যবহার করে, আপনি যদি 'ক্রিশ্চিয়ান' অপসারণ করেন তবে লুপের মধ্যে পরবর্তী মৃত্যুদন্ডের ক্ষেত্রে, আমি 2 হবে তবে কিছু অ্যারে দৈর্ঘ্য 1 হবে, সুতরাং আপনি "জন" অপসারণ করার চেষ্টা করলে আপনি একটি "অপরিজ্ঞাত" ত্রুটি পাবেন । মার্জিত না হলেও এগুলির একটি সমাধান হ'ল উপাদানটির সূচকগুলি সরিয়ে ফেলার জন্য আলাদা কাউন্টার থাকা।


1

অ্যারে থেকে কেবলমাত্র এমন বস্তু ফেরত দেয় যার সম্পত্তি name"ক্রিশ্চিয়ান" নয়

var noKristianArray = $.grep(someArray, function (el) { return el.name!= "Kristian"; });


ডেমো:

 var someArray = [
                {name:"Kristian", lines:"2,5,10"},
                {name:"John", lines:"1,19,26,96"},
                {name:"Kristian", lines:"2,58,160"},
                {name:"Felix", lines:"1,19,26,96"}
                ];
			 
var noKristianArray = $.grep(someArray, function (el) { return el.name!= "Kristian"; });

console.log(noKristianArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


0

কেন্দো গ্রিড ব্যবহার করে এই ধারণাগুলি

var grid = $("#addNewAllergies").data("kendoGrid");

var selectedItem = SelectedCheckBoxList;

for (var i = 0; i < selectedItem.length; i++) {
    if(selectedItem[i].boolKendoValue==true)
    {
        selectedItem.length= 0;
    }
}

-2

আপনি যদি কোনও অ্যারের অবজেক্টটি অ্যাক্সেস করতে এবং সরাতে চান তবে আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন।

// inside some function

let someArray = [ {"ColumnName" : "a", "PropertySerno" : 100005,"UpdateType" : 1},
                  {"ColumnName" : "b", "PropertySerno" : 100202,"UpdateType" : 1,
        "ShowRemoveButton" : true} ];
        
        for (let item of someArray) {
          delete item.ShowRemoveButton;
        }
        console.log(item.outputMappingData.Data);
        
//output will be like that = [ {"ColumnName" : "a", "PropertySerno" : 100005,"UpdateType" : 1},
//                             {"ColumnName" : "b", "PropertySerno" : 100202,"UpdateType" : 1 }];
        

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.